Skip to content

Latest commit

 

History

History
366 lines (359 loc) · 14.4 KB

File metadata and controls

366 lines (359 loc) · 14.4 KB

Az.DevCenter

This directory contains the PowerShell module for the DevCenter service.


Info

  • Modifiable: yes
  • Generated: all
  • Committed: yes
  • Packaged: yes

Detail

This module was primarily generated via AutoRest using the PowerShell extension.

Module Requirements

Authentication

AutoRest does not generate authentication code for the module. Authentication is handled via Az.Accounts by altering the HTTP payload before it is sent.

Development

For information on how to develop for Az.DevCenter, see how-to.md.

AutoRest Configuration

see https://aka.ms/autorest

# pin the swagger version by using the commit id instead of branch name
commit: 4689e75cdeaa04dbeead0237b72cae8dc8dbba4d
require:
# readme.azure.noprofile.md is the common configuration file
  - $(this-folder)/../../readme.azure.noprofile.md
input-file:
  - $(repo)/specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/commonDefinitions.json
  - $(repo)/specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/devcenter.json
  - $(repo)/specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/vdi.json
directive:
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/sync"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. Successfully initiated sync."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/sync"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. Successfully initiated sync."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/connect"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/connect"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/galleries/{galleryName}"].put.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded.",
        "schema": {"$ref": "#/definitions/Gallery"}
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/attachednetworks/{attachedNetworkConnectionName}"].put.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded.",
        "schema": {"$ref": "#/definitions/AttachedNetworkConnection"}
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}"].put.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded.",
        "schema": {"$ref": "#/definitions/Catalog"}
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}"].put.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded.",
        "schema": {"$ref": "#/definitions/Catalog"}
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/environmentDefinitions/{environmentDefinitionName}"].get.operationId
    transform: >-
      return "ProjectEnvironmentDefinitions_Get"
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/environmentDefinitions"].get.operationId
    transform: >-
      return "ProjectEnvironmentDefinitions_List"
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/environmentDefinitions/{environmentDefinitionName}/getErrorDetails"].post.operationId
    transform: >-
      return "ProjectEnvironmentDefinitions_GetErrorDetails"
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/attachednetworks/{attachedNetworkConnectionName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/devboxdefinitions/{devBoxDefinitionName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/galleries/{galleryName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/networkConnections/{networkConnectionName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/pools/{poolName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/pools/{poolName}/schedules/{scheduleName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/networkConnections/{networkConnectionName}/runHealthChecks"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/pools/{poolName}/runHealthChecks"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/projectPolicies/{projectPolicyName}"].delete.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded."
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds/{buildName}/cancel"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded.",
        "headers": {
              "Azure-AsyncOperation": {
                "type": "string"
              },
              "Location": {
                "type": "string"
              }
        }
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/buildImage"].post.responses
    transform: >
      $['200'] = {
        "description": "OK. The request has succeeded.",
        "headers": {
              "Azure-AsyncOperation": {
                "type": "string"
              },
              "Location": {
                "type": "string"
              }
        }
      }
  #Use v3 for OperationStatus, remove this for breaking change version
  - from: swagger-document
    where: $.definitions
    transform: >
      $['OperationStatus'] = {
        "description": "The current status of an async operation",
        "type": "object",
        "allOf": [
          {
          "$ref": "https://github.com/Azure/azure-rest-api-specs/blob/4689e75cdeaa04dbeead0237b72cae8dc8dbba4d/specification/common-types/resource-management/v3/types.json#/definitions/OperationStatusResult"
          }
        ],
        "properties": {
          "resourceId": {
            "description": "The id of the resource.",
            "type": "string",
            "readOnly": true
          },
          "properties": {
            "description": "Custom operation properties, populated only for a successful operation.",
            "type": "object",
            "readOnly": true
          }
        }
      }
  - where:
      parameter-name: Top
    hide: true
  - where:
      parameter-name: Filter
    hide: true
  - where:
      subject: Schedule
      parameter-name: Frequency
    hide: true
    set:
      default:
        script: '"Daily"'
  - where:
      subject: Schedule
      parameter-name: PropertiesType
    hide: true
    set:
      default:
        script: '"StopDevBox"'
  - where:
      subject: Schedule
      parameter-name: Name
    hide: true
    set:
      default:
        script: '"default"'
  - where:
      subject: Pool
      parameter-name: LicenseType
    hide: true
    set:
      default:
        script: '"Windows_Client"'
  - where:
      verb: New
      subject: Pool
      parameter-name: LicenseType
    hide: true
    set:
      default:
        script: '"Windows_Client"'
  - where:
      subject: DevCenter
      parameter-name: CustomerManagedKeyEncryptionKeyUrl
    hide: true
  - where:
      subject: DevCenter
      parameter-name: KeyEncryptionKeyIdentityDelegatedIdentityClientId
    hide: true
  - where:
      subject: DevCenter
      parameter-name: KeyEncryptionKeyIdentityType
    hide: true
  - where:
      subject: DevCenter
      parameter-name: KeyEncryptionKeyIdentityUserAssignedIdentityResourceId
    hide: true
# Remove Set per design review
  - where:
      verb: Set
    remove: true
# Remove extra input object variant 
  - where:
      verb: Get 
      subject:  ^(AttachedNetwork|DevBoxDefinition|NetworkConnectionHealthDetail)$
      variant: GetViaIdentity1
    remove: true
  - where:
      verb: Get 
      subject:  NetworkConnectionHealthDetail
      variant: Get
    remove: true
# Matches any verb that is set
  - where:
      verb: Set
    hide: true
# Hide schedule commands
  - where:
      subject: Schedule
    hide: true
# Remove non-expanded body variants (keep Expanded, JsonFilePath, JsonString)
  - where:
      verb: Update
      variant: ^(Update)(?!.*?(Expanded|JsonFilePath|JsonString))
    remove: true
  - where:
      verb: New
      variant: ^(Create)(?!.*?(Expanded|JsonFilePath|JsonString))
    remove: true
  - where:
      verb: Invoke
      subject: ExecuteCheckNameAvailability
      variant: ^(Execute)(?!.*?(Expanded|JsonFilePath|JsonString))
    remove: true
  - where:
      verb: Invoke
      subject: ExecuteCheckScopedNameAvailability
      variant: ^(Execute)(?!.*?(Expanded|JsonFilePath|JsonString))
    remove: true
# Set required parameters    
  - where:
      verb: New
      subject:  AttachedNetwork
      parameter-name: NetworkConnectionId
    required: true
# Remove parameter
  - where:
      verb: Update
      parameter-name: Location
    hide: true
  - where:
      verb: Update
      subject: Project
      parameter-name: DevCenterId
    hide: true
  - where:
      verb: New
      subject: ^AttachedNetwork$|^Catalog$|^DevBoxDefinition$|^Gallery$|^NetworkConnection$|^Pool$|^Project$|^ProjectEnvironmentType$|^ProjectCatalog$
    hide: true
  - where:
      subject: ^CatalogDevBoxDefinition$|^CatalogDevBoxDefinitionErrorDetail$|^EncryptionSet$|^DevCenterCatalogImageDefinitionImage$|^DevCenterCatalogImageDefinition$|^DevCenterCatalogImageDefinitionBuild$|^DevCenterCatalogImageDefinitionBuildDetail$|^DevCenterCatalogImageDefinitionErrorDetail$
    hide: true
  - where:
      subject: OperationStatuses
    set:
      subject: OperationStatus
  - where:
      subject: ^(.*)
    set:
      subject-prefix: DevCenterAdmin