Skip to content

Latest commit

 

History

History
636 lines (583 loc) · 20.3 KB

File metadata and controls

636 lines (583 loc) · 20.3 KB

Az.MachineLearningServices

This directory contains the PowerShell module for the MachineLearningServices 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.MachineLearningServices, see how-to.md.

AutoRest Configuration

see https://aka.ms/autorest

commit: d4782cf23e78d441b42d06defad8116fc85d8459
require:
  - $(this-folder)/../../readme.azure.noprofile.md
  - $(repo)/specification/machinelearningservices/resource-manager/readme.md
# input-file:
#   - $(repo)/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/machineLearningServices.json
#   - $(repo)/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/mfe.json
#   - $(repo)/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/workspaceFeatures.json
#   - $(repo)/specification/machinelearningservices/resource-manager/Microsoft.MachineLearningServices/stable/2024-04-01/registries.json

subject-prefix: MLWorkspace
title: MachineLearningServices
inlining-threshold: 200

directive:
  # Add Workspace type enum
  - from: swagger-document
    where: $.definitions.Workspace.properties.kind
    transform: >-
      return {
        "type": "string",
        "description": "Type of workspace. Possible values: Default, Hub, Project, FeatureStore.",
        "enum": [
            "Default",
            "Hub",
            "Project",
            "FeatureStore"
          ],
        "x-ms-enum": {
          "name": "WorkspaceType",
          "modelAsString": true
        }
      }
  - from: swagger-document
    where: $.definitions.ComponentVersion.properties.componentSpec
    transform: >-
      return {
          "type": "object",
          "additionalProperties": true,
          "description": "Defines Component definition details.\r\n<see href=\"https://learn.microsoft.com/en-us/azure/machine-learning/reference-yaml-component-command\" />"
      }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/connections/{connectionName}"].put
    transform: >-
      $["description"] = "Creating or updating a new workspace connection"
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/connections/{connectionName}"].get
    transform: >-
      $["description"] = "Get a new workspace connection"
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/connections/{connectionName}"].delete
    transform: >-
      $["description"] = "Remove a new workspace connection"
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/start"].post.responses
    transform: >-
      return {
            "200": {
              "description": "Success."
            },
            "202": {
              "description": "Success."
            },
            "default": {
              "description": "Error response describing why the operation failed.",
              "schema": {
                "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
              }
            }
          }

  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/stop"].post.responses
    transform: >-
      return {
            "200": {
              "description": "Success."
            },
            "202": {
              "description": "Success."
            },
            "default": {
              "description": "Error response describing why the operation failed.",
              "schema": {
                "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
              }
            }
          }
  - from: swagger-document
    where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/computes/{computeName}/restart"].post.responses
    transform: >-
      return {
            "200": {
              "description": "Success."
            },
            "202": {
              "description": "Success."
            },
            "default": {
              "description": "Error response describing why the operation failed.",
              "schema": {
                "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse"
              }
            }
          }
  
  # fix required parameter in model
  - from: swagger-document #mfe.json
    where: $.definitions.AzureDataLakeGen1Datastore.properties.storeName
    transform: $['x-ms-mutability'] = ["read", "update", "create"]
  - from: swagger-document #mfe.json
    where: $.definitions.AzureDataLakeGen2Datastore.properties.accountName
    transform: $['x-ms-mutability'] = ["read", "update", "create"]
  - from: swagger-document #mfe.json
    where: $.definitions.AzureDataLakeGen2Datastore.properties.filesystem
    transform: $['x-ms-mutability'] = ["read", "update", "create"]
  - from: swagger-document #mfe.json
    where: $.definitions.AzureFileDatastore.properties.accountName
    transform: $['x-ms-mutability'] = ["read", "update", "create"]
  - from: swagger-document #mfe.json
    where: $.definitions.AzureFileDatastore.properties.fileShareName
    transform: $['x-ms-mutability'] = ["read", "update", "create"]
  - from: swagger-document #mfe.json
    where: $.definitions.CommandJob.properties.EnvironmentId
    transform: $['x-ms-mutability'] = ["read", "update", "create"]
  - from: swagger-document #mfe.json
    where: $.definitions.TrialComponent.properties.command
    transform: $['x-ms-mutability'] = ["read", "update", "create"]

  # Fix the parameter 'Name' has multiple parameter types [String, String[]] defined, which is not supported.
  - where:
      verb: Get
      subject: Datastore
      variant: ^List$
      parameter-name: Name
    set:
      parameter-name: SearchName

  # All root resources except workspace will use AzMLService as noun prefix.
  - where:
      subject: Usage|Quota
    set:
      subject-prefix: MLService

  - where:
      subject: VirtualMachineSize
    set:
      subject-prefix: MLService
      subject: VMSize
  - where:
      subject-prefix: MlWorkspace
    set:
      subject-prefix: MLWorkspace
  - where:
      subject-prefix: Ml
    set:
      subject-prefix: ML
  # Fix double name for name of Feature
  - where:
      parameter-name: FeatureName
    set:
      parameter-name: Name
    # Fix double name for feature of cmdlet "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/featuresets/{featuresetName}/versions/{featuresetVersion}/features"
  - where:
      verb: Get
      subject: Feature
    # set:
    #   subject: FeatureWithVersion
    remove: true

  - where:
      verb: Invoke
      subject: ResyncWorkspaceKey
    set:
      verb: Sync
      subject: Key

  - where:
      subject: DiagnoseWorkspace
    set:
      subject: Diagnose

  - where:
      subject: PrepareWorkspaceNotebook
    set:
      subject: Notebook

  # Following are common directives which are normally required in all the RPs
  # 1. Remove the unexpanded parameter set
  # 2. For New-* cmdlets, ViaIdentity is not required
  - where:
      variant: ^(Create|Update)(?!.*?(Expanded|JsonFilePath|JsonString))|^CreateViaIdentityExpanded$
    remove: true

  # Custom workspace connect
  - where:
      subject: WorkspaceConnection
      verb: New
    hide: true

  # Remove private cmdlets. it been supported in the Az.Network.
  - where:
      subject: PrivateEndpointConnection|PrivateLinkResource
    remove: true
  # Remove Set cmdlets
  - where:
      verb: Set
    remove: true

  # Remove unnecessary variant of the environment
  - where:
      verb: Get
      subject: OnlineDeploymentLog
      variant: Get(?!.*?Expanded)
    remove: true
  # Remove unexpanded variant of Diagnose
  - where:
      verb: Invoke
      subject: Diagnose
      variant: ^Diagnose$|^DiagnoseViaIdentity$
    remove: true
  # Remove unexpanded variant of online endpoint key
  - where:
      verb: New
      subject: OnlineEndpointKey
      variant: ^Regenerate$|^RegenerateViaIdentity$|^RegenerateViaIdentityExpanded$
    remove: true
  # Unsupported Get and New operations.
  - where:
      subject: ^CodeContainer$
    remove: true
  - where:
      variant: GetViaIdentityCode|CreateViaIdentityCodeExpanded|UpdateViaIdentityCodeExpanded
    remove: true
  #  InternalServerError
  - where:
      verb: New
      subject: ^EnvironmentContainer$
    remove: true
  # Remove unsupported v4 update cmdlets
  - where:
      subject: Datastore|EnvironmentContainer
      verb: update
    remove: true

  # List unsupported
  - where:
      verb: Get
      subject: CodeVersion
      variant: ^List$
    remove: true
  # ListKeys is not supported
  - where:
      subject: BatchEndpointKey
    remove: true

  # Hide unnecessary cmdlet
  - where:
      subject: ConnectionSecret|CodeVersionStartPendingUpload|Featureset(.*)|Featurestore(.*)|Registry(.*)
    remove: true
  - where:
      subject: Schedule|ServerlessEndpoint|ServerlessEndpointKey|ManagedNetworkSettingsRule|MarketplaceSubscription
    remove: true
  - where:
      subject: ManagedNetworkProvisionManagedNetwork|ManagedNetworkSettingRule
      verb: New
    remove: true
  - where:
      subject: CodeVersion|ComponentVersion|DataVersion|EnvironmentVersion|ModelVersion
      verb: Publish
    remove: true
  # rename parameters
  - where:
      subject: BatchEndpoint
      parameter-name: EndpointPropertiesBaseProperty
    set:
      parameter-name: EndpointProperties
  - where:
      subject: BatchDeployment
      parameter-name: EndpointDeploymentPropertiesBaseProperty
    set:
      parameter-name: EndpointDeploymentProperties

  - where:
      subject: WorkspaceConnection
      parameter-name: ConnectionName
    set:
      parameter-name: Name

  - where:
      verb: Invoke
      subject: Diagnose
      parameter-name: Value(.*)
    set:
      parameter-name: $1
  - where:
      verb: Invoke
      subject: Diagnose
      parameter-name: ApplicationInsight
    set:
      parameter-name: ApplicationInsightId 

  - where:
      verb: Invoke
      subject: Diagnose
      parameter-name: ContainerRegistry
    set:
      parameter-name: ContainerRegistryId

  - where:
      verb: Invoke
      subject: Diagnose
      parameter-name: KeyVault
    set:
      parameter-name: KeyVaultId 

  - where:
      verb: Invoke
      subject: Diagnose
      parameter-name: KeyVault
    set:
      parameter-name: StorageAccountId 

  - where:
      verb: New
      subject: Datastore
      parameter-name: Property
    set:
      parameter-name: Datastore

  - where:
      verb: New
      subject: Compute
      parameter-name: Property
    set:
      parameter-name: Compute
  - where:
      verb: New|Update
      subject: ""
      parameter-name: ApplicationInsight
    set:
      parameter-name: ApplicationInsightId

  - where:
      verb: New|Update
      subject: ""
      parameter-name: ContainerRegistry
    set:
      parameter-name: ContainerRegistryId

  - where:
      verb: New|Update
      subject: Workspace
      parameter-name: KeyVault
    set:
      parameter-name: KeyVaultId

  - where:
      verb: New|Update
      subject: Workspace
      parameter-name: KeyVaultPropertyIdentityClientId
    set:
      parameter-name: KeyVaultIdentityClientId
  - where:
      verb: New|Update
      subject: Workspace
      parameter-name: KeyVaultPropertyKeyIdentifier
    set:
      parameter-name: KeyVaultKeyIdentifier
  - where:
      verb: New|Update
      subject: Workspace
      parameter-name: KeyVaultPropertyKeyVaultArmId
    set:
      parameter-name: KeyVaultArmId

  - where:
      verb: New|Update
      subject: Workspace
      parameter-name: PropertiesEncryptionIdentityUserAssignedIdentity
    set:
      parameter-name: EncryptionUserAssignedIdentity

  - where:
      verb: New|Update
      parameter-name: IdentityUserAssignedIdentity
    set:
      parameter-name: IdentityUserAssigned

  - where:
      verb: New|Update
      parameter-name: StorageAccount
    set:
      parameter-name: StorageAccountId

  - where:
      subject: ComputeKey|ComputeNode
      parameter-name: ComputeName
    set:
      parameter-name: Name
  - where:
      subject: Compute
      parameter-name: ScaleSetting(.*)
    set:
      parameter-name: $1

  - where:
      subject: Job
      parameter-name: Id
    set:
      parameter-name: Name
  - where:
      subject: Job
      parameter-name: Property
    set:
      parameter-name: Job

  - where:
      subject: OnlineDeployment|OnlineDeploymentLog|DeploymentSku|BatchDeployment
      parameter-name: DeploymentName
    set:
      parameter-name: Name

  - where:
      subject: OnlineDeployment|BatchDeployment
      parameter-name: CodeConfigurationCodeId
    set:
      parameter-name: CodeId

  - where:
      subject: OnlineDeployment|BatchDeployment
      parameter-name: CodeConfigurationScoringScript
    set:
      parameter-name: CodeScoringScript

  - where:
      subject: OnlineDeployment
      parameter-name: RequestSettingMaxConcurrentRequestsPerInstance
    set:
      parameter-name: RequestMaxConcurrentPerInstance

  - where:
      subject: OnlineDeployment
      parameter-name: RequestSettingMaxQueueWait
    set:
      parameter-name: RequestMaxQueueWait

  - where:
      subject: OnlineDeployment
      parameter-name: RequestSettingRequestTimeout
    set:
      parameter-name: RequestTimeout

  - where:
      subject: OnlineDeployment
      parameter-name: ScaleSettingScaleType
    set:
      parameter-name: ScaleType

  - where:
      subject: BatchDeployment
      parameter-name: RetrySettingMaxRetry
    set:
      parameter-name: RetryMax
  - where:
      subject: BatchDeployment
      parameter-name: RetrySettingTimeout
    set:
      parameter-name: RetryTimeout
  - where:
      subject: BatchDeployment
      parameter-name: Compute
    set:
      parameter-name: ComputeId

  - where:
      subject: OnlineEndpoint|OnlineEndpointKey|OnlineEndpointToken|BatchEndpoint
      parameter-name: EndpointName
    set:
      parameter-name: Name
  
  - where:
      subject: BatchEndpoint
      parameter-name: KeyPrimaryKey
    set:
      parameter-name: PrimaryKey

  - where:
      subject: BatchEndpoint
      parameter-name: KeySecondaryKey
    set:
      parameter-name: SecondaryKey

  - where:
      subject: ^WorkspaceKey$|^WorkspaceFeature$|^Diagnose$|^WorkspaceStorageAccountKey$|^Key$
      parameter-name: WorkspaceName
    set:
      parameter-name: Name

  - where:
      subject: ^Diagnose$
      parameter-name: Others
    set:
      parameter-name: Other

  - no-inline:
# Datastore
    - Datastore
    - DatastoreCredentials
    - AccountKeyDatastoreCredentials
    - CertificateDatastoreCredentials
    - NoneDatastoreCredentials
    - SasDatastoreCredentials
    - ServicePrincipalDatastoreCredentials
# Compute
    - Compute
# Job
    - JobBase
# Model
    - AssetReferenceBase
# Connection
    - WorkspaceConnectionPropertiesV2
    - WorkspaceConnectionPropertiesV2BasicResource
  - model-cmdlet:
# Compute type: 'AKS', 'Kubernetes', 'AmlCompute', 'ComputeInstance','DataFactory', 'VirtualMachine', 'HDInsight', 'Databricks', 'DataLakeAnalytics', 'SynapseSpark'
    # - model-name: Aks #Custom parameter names
    # - model-name: AmlCompute
    - model-name: ComputeInstance
    # cmdlet-name: New-AzMLWorkspaceComputeInstanceObject
    # - model-name: Kubernetes #Custom parameter logic, remind you sync parameters
    # cmdlet-name: New-AzMLWorkspaceKubernetesObject
    - model-name: VirtualMachine
    - model-name: HDInsight 
    - model-name: DataFactory
    - model-name: Databricks
    - model-name: DataLakeAnalytics
    - model-name: SynapseSpark
    - model-name: ComputeStartStopSchedule
# Datastore
    # Datastore Type
    - model-name: AzureBlobDatastore 
      cmdlet-name: New-AzMLWorkspaceDatastoreBlobObject
    - model-name: AzureDataLakeGen1Datastore 
      cmdlet-name: New-AzMLWorkspaceDatastoreDataLakeGen1Object
    - model-name: AzureDataLakeGen2Datastore 
      cmdlet-name: New-AzMLWorkspaceDatastoreDataLakeGen2Object
    - model-name: AzureFileDatastore 
      cmdlet-name: New-AzMLWorkspaceDatastoreFileObject
    # Credentials Type: 'AccountKey', 'Certificate', 'None', 'Sas', 'ServicePrincipal'
    # - model-name: AccountKeyDatastoreCredentials # Custom, to expand Key parameter of Secret
    #   cmdlet-name: New-AzMLWorkspaceDatastoreKeyCredentialObject
    # - model-name: CertificateDatastoreCredentials # Custom, to expand Certificate parameter of Secret
    #   cmdlet-name: New-AzMLWorkspaceDatastoreCredentialObject
    - model-name: NoneDatastoreCredentials
      cmdlet-name: New-AzMLWorkspaceDatastoreNoneCredentialObject
    # - model-name: SasDatastoreCredentials #Custom, to expand SasToken parameter of Secret
    #   cmdlet-name: New-AzMLWorkspaceDatastoreSasCredentialObject
    # - model-name: ServicePrincipalDatastoreCredentials #Custom, to expand ClientSecret parameter of Secret
    #   cmdlet-name: New-AzMLWorkspaceDatastoreServicePrincipalCredentialObject
  # Job type
    # - model-name: CommandJob #Custom parameter logic, remind you sync parameters
    - model-name: PipelineJob #Custom parameter logic, remind you sync parameters
    - model-name: SweepJob #Custom parameter logic, remind you sync parameters
  # Job input and output
    - model-name: CustomModelJobInput
    - model-name: CustomModelJobOutput
    - model-name: LiteralJobInput
    - model-name: MLFlowModelJobInput
    - model-name: MLFlowModelJobOutput
    - model-name: MLTableJobInput
    - model-name: MLTableJobOutput
    - model-name: TritonModelJobInput
    - model-name: TritonModelJobOutput
    - model-name: UriFileJobInput
    - model-name: UriFileJobOutput
    - model-name: UriFolderJobInput
    - model-name: UriFolderJobOutput
    - model-name: JobService
    - model-name: SharedPrivateLinkResource
    - model-name: QuotaBaseProperties
      cmdlet-name: New-AzMLWorkspaceQuotaPropertiesObject
  # Model
    - model-name: DataPathAssetReference
    - model-name: IdAssetReference
    - model-name: OutputPathAssetReference
  # Connection
    # - model-name: WorkspaceConnectionPropertiesV2Metadata #additionalProperties non-need
    - model-name: AadAuthTypeWorkspaceConnectionProperties
    - model-name: AccessKeyAuthTypeWorkspaceConnectionProperties
    - model-name: AccountKeyAuthTypeWorkspaceConnectionProperties
    - model-name: ApiKeyAuthWorkspaceConnectionProperties
    - model-name: CustomKeysWorkspaceConnectionProperties
    - model-name: ManagedIdentityAuthTypeWorkspaceConnectionProperties
    - model-name: NoneAuthTypeWorkspaceConnectionProperties
    - model-name: OAuth2AuthTypeWorkspaceConnectionProperties
    - model-name: PatAuthTypeWorkspaceConnectionProperties
    - model-name: SasAuthTypeWorkspaceConnectionProperties
    - model-name: ServicePrincipalAuthTypeWorkspaceConnectionProperties
    - model-name: UsernamePasswordAuthTypeWorkspaceConnectionProperties

  - from: source-file-csharp
    where: $
    transform: $ = $.replace(/\\r\\nFor create case, the Tags in the definition passed in will replace Tags in the existing/g, 'For update case, the Tags in the definition passed in will replace Tags in the existing')
  - from: source-file-csharp
    where: $
    transform: $ = $.replace(/and executes a Job./g, 'and execute a Job.')