From 8726ec8e9f1c9850c2059caaaa3faf5b6458899a Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 17 Jul 2025 08:36:58 -0700 Subject: [PATCH 01/12] Setup CI for typespec-next --- .../setup-node-install-deps/action.yaml | 9 +++ .../workflows/typespec-validation-all.yaml | 5 ++ .github/workflows/typespec-validation.yaml | 11 ++-- eng/pipelines/templates/steps/npm-install.yml | 4 +- package.json | 57 ++++++++++++------- 5 files changed, 60 insertions(+), 26 deletions(-) diff --git a/.github/actions/setup-node-install-deps/action.yaml b/.github/actions/setup-node-install-deps/action.yaml index a9e6a548d9bb..c34d9a0c8596 100644 --- a/.github/actions/setup-node-install-deps/action.yaml +++ b/.github/actions/setup-node-install-deps/action.yaml @@ -20,6 +20,15 @@ runs: with: node-version: ${{ inputs.node-version }} + - name: Regenerate package-lock.json with latest "next" versions + run: | + rm package-lock.json + npm install --package-lock-only + echo "::group::echo package-lock.json" + cat package-lock.json + echo "::endgroup::" + shell: bash + - run: | echo "::group::$INSTALL_COMMAND" $INSTALL_COMMAND diff --git a/.github/workflows/typespec-validation-all.yaml b/.github/workflows/typespec-validation-all.yaml index 425cdf110e9d..146cd90f5344 100644 --- a/.github/workflows/typespec-validation-all.yaml +++ b/.github/workflows/typespec-validation-all.yaml @@ -69,6 +69,11 @@ jobs: with: # Convert placeholder string 'default' to '', which tells the action to checkout the default ref. ref: ${{ matrix.ref == 'next' && 'typespec-next' || '' }} + # Checkout all history for all branches. Required to merge origin/main. + fetch-depth: 0 + + - name: git merge origin/main + run: git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" merge -Xours origin/main - name: Setup Node and install deps uses: ./.github/actions/setup-node-install-deps diff --git a/.github/workflows/typespec-validation.yaml b/.github/workflows/typespec-validation.yaml index 7a38bb20870d..b7a476c1ff32 100644 --- a/.github/workflows/typespec-validation.yaml +++ b/.github/workflows/typespec-validation.yaml @@ -10,14 +10,17 @@ jobs: name: TypeSpec Validation runs-on: ubuntu-24.04 - steps: + steps: - uses: actions/checkout@v4 with: - fetch-depth: 2 + # Checkout all history for all branches. Required to merge origin/main. + fetch-depth: 0 + + - name: git merge origin/main + run: git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" merge -Xours origin/main - name: Setup Node and install deps uses: ./.github/actions/setup-node-install-deps - - name: Validate Impacted Specs run: | # Keep processing when errors are written. Nonzero exit will mark the @@ -27,5 +30,5 @@ jobs: # Only "main" and "RPSaaSMaster" should validate all specs if core files change $ignoreCoreFiles = -not (@('main', 'RPSaaSMaster') -contains $Env:GITHUB_BASE_REF) - ./eng/scripts/TypeSpec-Validation.ps1 -GitClean -Verbose -IgnoreCoreFiles:$ignoreCoreFiles + ./eng/scripts/TypeSpec-Validation.ps1 -GitClean -Verbose -BaseCommitish:HEAD~1 -HeadCommitish:HEAD~2 shell: pwsh diff --git a/eng/pipelines/templates/steps/npm-install.yml b/eng/pipelines/templates/steps/npm-install.yml index c64de780bc12..44636332de63 100644 --- a/eng/pipelines/templates/steps/npm-install.yml +++ b/eng/pipelines/templates/steps/npm-install.yml @@ -8,8 +8,8 @@ steps: parameters: NodeVersion: ${{ parameters.NodeVersion }} - - script: npm ci - displayName: npm ci + - script: npm install --no-package-lock + displayName: npm install --no-package-lock - script: npm ls -a || true displayName: npm ls -a diff --git a/package.json b/package.json index e8b300990f79..8d4d63c4cf46 100644 --- a/package.json +++ b/package.json @@ -4,34 +4,51 @@ "@azure-tools/spec-gen-sdk": "~0.8.0", "@azure-tools/specs-shared": "file:.github/shared", "@azure-tools/typespec-apiview": "0.7.2", - "@azure-tools/typespec-autorest": "0.58.0", - "@azure-tools/typespec-azure-core": "0.58.0", - "@azure-tools/typespec-azure-portal-core": "0.58.0", - "@azure-tools/typespec-azure-resource-manager": "0.58.0", - "@azure-tools/typespec-azure-rulesets": "0.58.0", - "@azure-tools/typespec-client-generator-cli": "0.25.0", - "@azure-tools/typespec-client-generator-core": "0.58.0", + "@azure-tools/typespec-autorest": "next", + "@azure-tools/typespec-azure-core": "next", + "@azure-tools/typespec-azure-portal-core": "next", + "@azure-tools/typespec-azure-resource-manager": "next", + "@azure-tools/typespec-azure-rulesets": "next", + "@azure-tools/typespec-client-generator-cli": "0.24.0", + "@azure-tools/typespec-client-generator-core": "next", "@azure-tools/typespec-liftr-base": "0.8.0", - "@autorest/openapi-to-typespec": "0.11.3", "@azure/avocado": "^0.9.1", - "@typespec/compiler": "1.2.1", - "@typespec/http": "1.2.1", - "@typespec/sse": "0.72.1", - "@typespec/events": "0.72.1", - "@typespec/openapi": "1.2.1", - "@typespec/openapi3": "1.2.1", - "@typespec/prettier-plugin-typespec": "1.2.1", - "@typespec/rest": "0.72.1", - "@typespec/streams": "0.72.1", - "@typespec/versioning": "0.72.1", - "@typespec/xml": "0.72.1", + "@autorest/openapi-to-typespec": "0.11.2", + "@typespec/compiler": "next", + "@typespec/http": "next", + "@typespec/sse": "next", + "@typespec/events": "next", + "@typespec/openapi": "next", + "@typespec/openapi3": "next", + "@typespec/prettier-plugin-typespec": "next", + "@typespec/rest": "next", + "@typespec/streams": "next", + "@typespec/versioning": "next", + "@typespec/xml": "next", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.6.1", "prettier": "~3.5.3", "typescript": "~5.8.2" }, "overrides": { - "@typespec/asset-emitter": "0.72.1", + "@azure-tools/typespec-autorest": "next", + "@azure-tools/typespec-azure-core": "next", + "@azure-tools/typespec-azure-portal-core": "next", + "@azure-tools/typespec-azure-resource-manager": "next", + "@azure-tools/typespec-client-generator-core": "next", + "@azure-tools/typespec-azure-rulesets": "next", + "@typespec/asset-emitter": "next", + "@typespec/compiler": "next", + "@typespec/http": "next", + "@typespec/sse": "next", + "@typespec/events": "next", + "@typespec/openapi": "next", + "@typespec/openapi3": "next", + "@typespec/prettier-plugin-typespec": "next", + "@typespec/rest": "next", + "@typespec/streams": "next", + "@typespec/versioning": "next", + "@typespec/xml": "next", "jsonpath-plus": "^10.3.0" }, "engines": { From 4c63c8adfbae50a59129f4f46696a1ea992095fc Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 17 Jul 2025 15:09:56 -0700 Subject: [PATCH 02/12] Remove @fixed decorator --- .../translation/Azure.AI.TextTranslation/models-languages.tsp | 2 -- .../translation/Azure.AI.TextTranslation/models-translate.tsp | 4 ---- 2 files changed, 6 deletions(-) diff --git a/specification/translation/Azure.AI.TextTranslation/models-languages.tsp b/specification/translation/Azure.AI.TextTranslation/models-languages.tsp index 1e7e697ccf79..990473500dbc 100644 --- a/specification/translation/Azure.AI.TextTranslation/models-languages.tsp +++ b/specification/translation/Azure.AI.TextTranslation/models-languages.tsp @@ -137,9 +137,7 @@ model TargetDictionaryLanguage { code: string; } -#suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "Enums should be defined without the `@fixed` decorator." #suppress "@azure-tools/typespec-azure-core/no-enum" "Azure services should not use the enum keyword." -@fixed @doc("Language Directionality") enum LanguageDirectionality { @doc("Language is written left to right.") diff --git a/specification/translation/Azure.AI.TextTranslation/models-translate.tsp b/specification/translation/Azure.AI.TextTranslation/models-translate.tsp index f6ae8af63ae2..bb58e8f185f8 100644 --- a/specification/translation/Azure.AI.TextTranslation/models-translate.tsp +++ b/specification/translation/Azure.AI.TextTranslation/models-translate.tsp @@ -149,9 +149,7 @@ union TextType { Html: "Html", } -#suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "Enums should be defined without the `@fixed` decorator." #suppress "@azure-tools/typespec-azure-core/no-enum" "Azure services should not use the enum keyword." -@fixed @doc("Translator profanity actions") enum ProfanityAction { @doc("No Action is taken on profanity") @@ -164,9 +162,7 @@ enum ProfanityAction { Deleted: "Deleted", } -#suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "Enums should be defined without the `@fixed` decorator." #suppress "@azure-tools/typespec-azure-core/no-enum" "Azure services should not use the enum keyword." -@fixed @doc("Translator profanity markers") enum ProfanityMarker { @doc("Profanity is marked with asterisk.") From fc1ef933531ee7bc19e640b4e6f42eb72d13ddc5 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 24 Jul 2025 13:18:57 -0700 Subject: [PATCH 03/12] Apply migration to core paging (#36153) --- .../ai/Azure.AI.Projects/servicepatterns.tsp | 1 + .../ai/DocumentIntelligence/routes.tsp | 1 + specification/ai/Face/routes.common.tsp | 3 +- specification/ai/Face/routes.facelist.tsp | 3 +- .../ai/Face/routes.persondirectory.tsp | 3 +- .../apicenter/ApiCenter.Management/main.tsp | 1 + .../AppConfiguration/models.tsp | 12 ++---- .../AppConfiguration/routes.tsp | 2 + .../Connection.tsp | 2 + .../AzureFleet.Management/fleet.tsp | 1 + .../virtualMachineScaleSet.tsp | 3 +- specification/batch/Azure.Batch/common.tsp | 1 + .../batch/Azure.Batch/java-client.tsp | 1 + specification/batch/Azure.Batch/models.tsp | 42 +++++++------------ specification/batch/Azure.Batch/routes.tsp | 16 +++++++ .../botservice/BotService.Management/main.tsp | 1 + .../BotService.Management/models.tsp | 6 +-- .../chaos/Chaos.Management/privateAccess.tsp | 2 +- .../AnomalyDetector/multivariate/models.tsp | 3 +- .../AnomalyDetector/multivariate/routes.tsp | 1 + .../compute/Common.Management/legacy.tsp | 2 + .../Compute.Management/AvailabilitySet.tsp | 1 + .../Compute.Management/DedicatedHost.tsp | 1 + .../Compute.Management/VirtualMachine.tsp | 1 + .../VirtualMachineRunCommand.tsp | 2 + .../VirtualMachineScaleSet.tsp | 2 + .../VirtualMachineScaleSetVM.tsp | 1 + .../compute/Compute.Management/models.tsp | 8 ++-- .../compute/Compute.Management/routes.tsp | 5 +++ .../Disk.Management/DiskEncryptionSet.tsp | 1 + .../Disk.Management/DiskRestorePoint.tsp | 1 + .../compute/Disk.Management/models.tsp | 3 +- .../compute/Gallery.Management/Gallery.tsp | 1 + .../compute/Sku.Management/routes.tsp | 2 +- .../occurrenceroutes.tsp | 1 + .../ComputeSchedule.Management/routes.tsp | 1 + .../SCEnvironmentRecord.tsp | 1 + .../confluent/Confluent.Management/main.tsp | 1 + .../confluent/Confluent.Management/models.tsp | 3 +- .../confluent/Confluent.Management/routes.tsp | 1 + .../ActiveSessionHostConfiguration.tsp | 1 + .../ApplicationGroup.tsp | 1 + .../HostPool.tsp | 4 ++ .../ScalingPlan.tsp | 1 + .../UserSession.tsp | 1 + .../DesktopVirtualization.Management/main.tsp | 1 + .../devcenter/DevCenter/DevBox/routes.tsp | 7 ++++ .../DevCenter/Environments/routes.tsp | 4 ++ .../PrivateEndpointConnection.tsp | 13 ++++-- .../ProvisioningServiceDescription.tsp | 4 +- .../models.tsp | 5 ++- .../main.tsp | 1 + .../Microsoft.DevTestLab.Management/Lab.tsp | 1 + .../Schedule.tsp | 3 +- .../dns/DNS.Management/RecordSet.tsp | 3 +- specification/dns/DNS.Management/Zone.tsp | 2 + .../Microsoft.Edge.Sites.Management/Site.tsp | 1 + .../edgeorder/EdgeOrder.Management/routes.tsp | 5 +++ .../ElasticSan.Management/models.tsp | 2 +- .../ElasticSan.Management/routes.tsp | 1 + .../Microsoft.Fabric.Management/capacity.tsp | 3 ++ .../Microsoft.Fabric.Management/models.tsp | 6 +-- .../GuestConfiguration.Management/main.tsp | 1 + .../GuestConfiguration.Management/models.tsp | 6 +-- .../GuestConfiguration.Management/routes.tsp | 1 + .../CloudHsmCluster.tsp | 1 + .../DedicatedHsm.tsp | 1 + .../models.tsp | 2 +- .../HybridKubernetes.Management/main.tsp | 1 + .../HybridKubernetes.Management/models.tsp | 3 +- .../Security.KeyVault.Certificates/client.tsp | 4 ++ .../Security.KeyVault.Certificates/models.tsp | 9 ++-- .../Security.KeyVault.Certificates/routes.tsp | 4 ++ .../Security.KeyVault.Keys/client.tsp | 3 ++ .../Security.KeyVault.Keys/models.tsp | 6 +-- .../Security.KeyVault.Keys/routes.tsp | 3 ++ .../Security.KeyVault.RBAC/models.tsp | 6 +-- .../Security.KeyVault.RBAC/routes.tsp | 2 + .../Security.KeyVault.Secrets/client.tsp | 3 ++ .../Security.KeyVault.Secrets/models.tsp | 6 +-- .../Security.KeyVault.Secrets/routes.tsp | 3 ++ .../LoadTestService.Management/routes.tsp | 1 + .../LoadTestService/models.tsp | 3 +- .../LoadTestService/routes.tsp | 2 + .../AzureAI.Assets/model.tsp | 6 +-- .../AzureAI.Assets/routes.tsp | 4 ++ .../Maintenance.Management/models.tsp | 15 +++---- .../Maintenance.Management/routes.tsp | 4 ++ .../Notificationhubs.Management/main.tsp | 1 + .../TenantConfiguration.tsp | 1 + .../Powerbidedicated.Management/main.tsp | 1 + .../Powerbidedicated.Management/models.tsp | 9 ++-- .../PrivateDNS.Management/PrivateZone.tsp | 1 + .../PrivateDNS.Management/RecordSet.tsp | 1 + .../Microsoft.Quantum.Management/routes.tsp | 2 +- .../Recoveryservices.Management/Vault.tsp | 2 + .../Recoveryservices.Management/main.tsp | 1 + .../Recoveryservices.Management/models.tsp | 6 +-- specification/riskiq/Easm/models.tsp | 9 ++-- specification/riskiq/Easm/routes.tsp | 2 + .../schemaregistry/SchemaRegistry/main.tsp | 8 ++-- .../ManagedCluster.tsp | 1 + .../ManagedVMSize.tsp | 1 + .../NodeType.tsp | 2 + .../main.tsp | 1 + .../sphere/Sphere.Management/catalog.tsp | 4 ++ .../sphere/Sphere.Management/product.tsp | 1 + .../SqlVirtualMachineGroup.tsp | 1 + .../SqlVirtualMachine.Management/main.tsp | 1 + .../StorageAction.Management/StorageTask.tsp | 2 + .../Azure.AI.DocumentTranslation/models.tsp | 6 +-- .../Azure.AI.DocumentTranslation/routes.tsp | 2 + .../vmware/Microsoft.AVS.Management/skus.tsp | 1 + .../VoiceServices.Provisioning/main.tsp | 1 + 114 files changed, 244 insertions(+), 138 deletions(-) diff --git a/specification/ai/Azure.AI.Projects/servicepatterns.tsp b/specification/ai/Azure.AI.Projects/servicepatterns.tsp index e7b0e8c152b3..d248679a06bf 100644 --- a/specification/ai/Azure.AI.Projects/servicepatterns.tsp +++ b/specification/ai/Azure.AI.Projects/servicepatterns.tsp @@ -42,6 +42,7 @@ interface VersionedOperations< @Rest.action("versions") @Rest.actionSeparator("/") @Http.get + @list listVersions is Azure.Core.StandardResourceOperations.ResourceAction< TEntityType, TListVersionsParameters, diff --git a/specification/ai/DocumentIntelligence/routes.tsp b/specification/ai/DocumentIntelligence/routes.tsp index 56aa162aaf0a..ccf84e09da2e 100644 --- a/specification/ai/DocumentIntelligence/routes.tsp +++ b/specification/ai/DocumentIntelligence/routes.tsp @@ -313,6 +313,7 @@ interface DocumentModels { @doc("List batch document analysis results.") @route("/documentModels/{modelId}/analyzeBatchResults") @get + @list listAnalyzeBatchResults is DocumentIntelligenceOperation< { @doc("Unique document model name.") diff --git a/specification/ai/Face/routes.common.tsp b/specification/ai/Face/routes.common.tsp index 7ebd903c2472..bde2032349bf 100644 --- a/specification/ai/Face/routes.common.tsp +++ b/specification/ai/Face/routes.common.tsp @@ -76,11 +76,12 @@ op FaceResourceUpdateOperation< FaceErrorResponse >; +@listsResource(TResource) op FaceResourceListOperation< TResource extends TypeSpec.Reflection.Model, TResourceItem extends TypeSpec.Reflection.Model = TResource, TQuery extends TypeSpec.Reflection.Model = {} -> is Foundations.ResourceList< +> is Foundations.ResourceCollectionOperation< TResource, ListRequestOptions & TQuery, Body, diff --git a/specification/ai/Face/routes.facelist.tsp b/specification/ai/Face/routes.facelist.tsp index ea16a0dfbe1b..58f2a0962956 100644 --- a/specification/ai/Face/routes.facelist.tsp +++ b/specification/ai/Face/routes.facelist.tsp @@ -72,7 +72,8 @@ interface FaceListOperations { To get face information inside Face List use \"Get Face List\". """) @returnsDoc("A successful call returns an array of Face Lists.") - getFaceLists is Foundations.ResourceList< + @listsResource(FaceList) + getFaceLists is Foundations.ResourceCollectionOperation< FaceList, ReturnRecognitionModelOptions, Body, diff --git a/specification/ai/Face/routes.persondirectory.tsp b/specification/ai/Face/routes.persondirectory.tsp index e76205f93063..a6b2eb852969 100644 --- a/specification/ai/Face/routes.persondirectory.tsp +++ b/specification/ai/Face/routes.persondirectory.tsp @@ -212,7 +212,8 @@ interface PersonDirectoryOperations { @doc("Retrieve a person's persistedFaceIds representing the registered person face feature(s).") @returnsDoc("A successful call returns an array of persistedFaceIds and and a person ID.") - getPersonFaces is Foundations.ResourceList< + @listsResource(PersonDirectoryFace) + getPersonFaces is Foundations.ResourceCollectionOperation< PersonDirectoryFace, {}, ListFaceResult, diff --git a/specification/apicenter/ApiCenter.Management/main.tsp b/specification/apicenter/ApiCenter.Management/main.tsp index 532d7d411ef7..caa71172a502 100644 --- a/specification/apicenter/ApiCenter.Management/main.tsp +++ b/specification/apicenter/ApiCenter.Management/main.tsp @@ -137,6 +137,7 @@ enum Versions { #suppress "@azure-tools/typespec-azure-core/casing-style" "It is pascal case" @get @autoRoute +@list @listsResource(TResource) @segmentOf(TResource) @armResourceList(TResource) diff --git a/specification/appconfiguration/AppConfiguration/models.tsp b/specification/appconfiguration/AppConfiguration/models.tsp index 22ab8e0a5b0e..285f641fb4de 100644 --- a/specification/appconfiguration/AppConfiguration/models.tsp +++ b/specification/appconfiguration/AppConfiguration/models.tsp @@ -112,10 +112,9 @@ union LabelFields { } @doc("The result of a list request.") -@pagedResult model KeyListResult { @doc("The collection value.") - @items + @pageItems items?: Key[]; @doc("The URI that can be used to request the next set of paged results.") @@ -152,10 +151,9 @@ model Error { } @doc("The result of a list request.") -@pagedResult model KeyValueListResult { @doc("The collection value.") - @items + @pageItems items?: KeyValue[]; @doc("An identifier representing the returned state of the resource.") @@ -200,10 +198,9 @@ model KeyValue { } @doc("The result of a snapshot list request.") -@pagedResult model SnapshotListResult { @doc("The collection value.") - @items + @pageItems items?: Snapshot[]; @doc("The URI that can be used to request the next set of paged results.") @@ -297,10 +294,9 @@ model SnapshotUpdateParameters { } @doc("The result of a list request.") -@pagedResult model LabelListResult { @doc("The collection value.") - @items + @pageItems items?: Label[]; @doc("The URI that can be used to request the next set of paged results.") diff --git a/specification/appconfiguration/AppConfiguration/routes.tsp b/specification/appconfiguration/AppConfiguration/routes.tsp index 37f53c17619c..fb6df0e07850 100644 --- a/specification/appconfiguration/AppConfiguration/routes.tsp +++ b/specification/appconfiguration/AppConfiguration/routes.tsp @@ -356,6 +356,7 @@ alias LabelsRequestParams = { @summary("Gets a list of labels.") @doc("Gets a list of labels.") @route("/labels") +@list op getLabels is AppConfigOperation< LabelsRequestParams, LabelListResult & @@ -435,6 +436,7 @@ alias RevisionsRequestParams = { @doc("Gets a list of key-value revisions.") @route("/revisions") @get +@list op getRevisions is AppConfigOperation< RevisionsRequestParams, KeyValueListResult & diff --git a/specification/azuredatatransfer/AzureDataTransfer.Management/Connection.tsp b/specification/azuredatatransfer/AzureDataTransfer.Management/Connection.tsp index 3e2d6a1a6487..d9aee135b0aa 100644 --- a/specification/azuredatatransfer/AzureDataTransfer.Management/Connection.tsp +++ b/specification/azuredatatransfer/AzureDataTransfer.Management/Connection.tsp @@ -83,6 +83,7 @@ interface Connections { #suppress "@azure-tools/typespec-azure-core/no-openapi" "Operation Id generated does not match original OpenAPIv2 JSON specification." @action("listPendingConnections") @operationId("ListPendingConnections_List") + @list list is ArmResourceActionSync< Connection, void, @@ -95,6 +96,7 @@ interface Connections { #suppress "@azure-tools/typespec-azure-core/no-openapi" "Operation Id generated does not match original OpenAPIv2 JSON specification." @action("listPendingFlows") @operationId("ListPendingFlows_List") + @list listPendingFlowsList is ArmResourceActionSync< Connection, void, diff --git a/specification/azurefleet/AzureFleet.Management/fleet.tsp b/specification/azurefleet/AzureFleet.Management/fleet.tsp index ffb237e7cdf1..69d2a7dffe34 100644 --- a/specification/azurefleet/AzureFleet.Management/fleet.tsp +++ b/specification/azurefleet/AzureFleet.Management/fleet.tsp @@ -536,6 +536,7 @@ interface Fleets { @listsResource(VirtualMachineScaleSet) @armResourceList(VirtualMachineScaleSet) @get + @list @doc("List VirtualMachineScaleSet resources by Fleet") listVirtualMachineScaleSets( ...ApiVersionParameter, diff --git a/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp b/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp index 63cd913813c6..4f01a9a04b75 100644 --- a/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp +++ b/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp @@ -50,10 +50,9 @@ model VirtualMachineScaleSet { } @doc("The response of a VirtualMachineScaleSet list operation.") -@pagedResult model VirtualMachineScaleSetListResult { @doc("The VirtualMachineScaleSet items on this page") - @items + @pageItems value: Array; @doc("The link to the next page of items") diff --git a/specification/batch/Azure.Batch/common.tsp b/specification/batch/Azure.Batch/common.tsp index 7d03256bcd51..7515aacd4c18 100644 --- a/specification/batch/Azure.Batch/common.tsp +++ b/specification/batch/Azure.Batch/common.tsp @@ -13,6 +13,7 @@ namespace Azure.Batch; // Batch operation definitions #suppress "@azure-tools/typespec-azure-core/no-response-body" "Legacy behavior" @get +@list op ListOperation< TFilter extends TypeSpec.Reflection.Model, TResponse diff --git a/specification/batch/Azure.Batch/java-client.tsp b/specification/batch/Azure.Batch/java-client.tsp index 5ea0e0f7ae8e..8db66dc1b14b 100644 --- a/specification/batch/Azure.Batch/java-client.tsp +++ b/specification/batch/Azure.Batch/java-client.tsp @@ -1239,6 +1239,7 @@ model BatchSubTasksListOptions { #suppress "@azure-tools/typespec-azure-core/no-rpc-path-params" "" @doc("Custom override for List SubTasks operation.") @route("/jobs/{jobId}/tasks/{taskId}/subtasksinfo") +@list op listSubTasksCustomization is Azure.Batch.ReadOperation< { ...Azure.Batch.ListSubTasksRequiredParameters; diff --git a/specification/batch/Azure.Batch/models.tsp b/specification/batch/Azure.Batch/models.tsp index d9bb44bdabb1..921ffb6b204b 100644 --- a/specification/batch/Azure.Batch/models.tsp +++ b/specification/batch/Azure.Batch/models.tsp @@ -760,10 +760,9 @@ union SecurityTypes { } @doc("The result of listing the applications available in an Account.") -@pagedResult model BatchApplicationListResult { @doc("The list of applications available in the Account.") - @items + @pageItems value?: BatchApplication[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -816,10 +815,9 @@ model BatchErrorDetail { } @doc("The result of a listing the usage metrics for an Account.") -@pagedResult model BatchPoolListUsageMetricsResult { @doc("The Pool usage metrics data.") - @items + @pageItems value?: BatchPoolUsageMetrics[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -847,10 +845,9 @@ model BatchPoolUsageMetrics { } @doc("The result of listing the supported Virtual Machine Images.") -@pagedResult model BatchAccountListSupportedImagesResult { @doc("The list of supported Virtual Machine Images.") - @items + @pageItems value?: BatchSupportedImage[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -918,10 +915,9 @@ model BatchVmImageReference { } @doc("The result of listing the Compute Node counts in the Account.") -@pagedResult model BatchPoolNodeCountsListResult { @doc("A list of Compute Node counts by Pool.") - @items + @pageItems value?: BatchPoolNodeCounts[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -1215,10 +1211,9 @@ model NameValuePair { } @doc("The result of listing the Certificates in the Account.") -@pagedResult model BatchCertificateListResult { @doc("The list of Certificates.") - @items + @pageItems value?: BatchCertificate[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -1231,10 +1226,9 @@ model BatchCertificateListResult { The result of listing the files on a Compute Node, or the files associated with a Task on a Compute Node. """) -@pagedResult model BatchNodeFileListResult { @doc("The list of files.") - @items + @pageItems value?: BatchNodeFile[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -2527,10 +2521,9 @@ model BatchJobScheduleStatistics { } @doc("The result of listing the Job Schedules in an Account.") -@pagedResult model BatchJobScheduleListResult { @doc("The list of Job Schedules.") - @items + @pageItems value?: BatchJobSchedule[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -2772,10 +2765,9 @@ model BatchJobTerminateOptions { } @doc("The result of listing the Jobs in an Account.") -@pagedResult model BatchJobListResult { @doc("The list of Jobs.") - @items + @pageItems value?: BatchJob[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -2788,10 +2780,9 @@ model BatchJobListResult { The result of listing the status of the Job Preparation and Job Release Tasks for a Job. """) -@pagedResult model BatchJobPreparationAndReleaseTaskStatusListResult { @doc("A list of Job Preparation and Job Release Task execution information.") - @items + @pageItems value?: BatchJobPreparationAndReleaseTaskStatus[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -3344,10 +3335,9 @@ model BatchUserAssignedIdentity { } @doc("The result of listing the Pools in an Account.") -@pagedResult model BatchPoolListResult { @doc("The list of Pools.") - @items + @pageItems value?: BatchPool[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -3795,10 +3785,9 @@ model BatchTaskIdRange { } @doc("The result of listing the Tasks in a Job.") -@pagedResult model BatchTaskListResult { @doc("The list of Tasks.") - @items + @pageItems value?: BatchTask[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -3843,10 +3832,9 @@ model BatchTaskCreateResult { } @doc("The result of listing the subtasks of a Task.") -@pagedResult model BatchTaskListSubtasksResult { @doc("The list of subtasks.") - @items + @pageItems value?: BatchSubtask[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -4229,10 +4217,9 @@ model UploadBatchServiceLogsResult { } @doc("The result of listing the Compute Nodes in a Pool.") -@pagedResult model BatchNodeListResult { @doc("The list of Compute Nodes.") - @items + @pageItems value?: BatchNode[]; #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @@ -4287,10 +4274,9 @@ model InstanceViewStatus { #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Model types must use camelCase" @doc("The result of listing the Compute Node extensions in a Node.") -@pagedResult model BatchNodeVMExtensionListResult { @doc("The list of Compute Node extensions.") - @items + @pageItems value?: BatchNodeVMExtension[]; @doc("The URL to get the next set of results.") diff --git a/specification/batch/Azure.Batch/routes.tsp b/specification/batch/Azure.Batch/routes.tsp index 90101215ee0a..39573245b5e7 100644 --- a/specification/batch/Azure.Batch/routes.tsp +++ b/specification/batch/Azure.Batch/routes.tsp @@ -23,6 +23,7 @@ interface Applications { API. """) @route("/applications") + @list listApplications is ListOperation< { ...CommonListParameters; @@ -68,6 +69,7 @@ interface Pools { last aggregation interval is returned. """) @route("/poolusagemetrics") + @list listPoolUsageMetrics is ListOperation< { ...CommonListParameters; @@ -93,6 +95,7 @@ interface Pools { @summary("Lists all of the Pools which be mounted.") @doc("Lists all of the Pools which be mounted.") + @list @route("/pools") listPools is ListOperation< { @@ -284,6 +287,7 @@ interface Pools { >; @summary("Lists all Virtual Machine Images supported by the Azure Batch service.") + @list @doc("Lists all Virtual Machine Images supported by the Azure Batch service.") @route("/supportedimages") listSupportedImages is ListOperation< @@ -300,6 +304,7 @@ interface Pools { use a list query. """) @route("/nodecounts") + @list listPoolNodeCounts is ListOperation< { ...CommonListParameters; @@ -464,6 +469,7 @@ interface Jobs { @summary("Lists all of the Jobs in the specified Account.") @doc("Lists all of the Jobs in the specified Account.") + @list @route("/jobs") listJobs is ListOperation< { @@ -476,6 +482,7 @@ interface Jobs { @summary("Lists the Jobs that have been created under the specified Job Schedule.") @doc("Lists the Jobs that have been created under the specified Job Schedule.") @route("/jobschedules/{jobScheduleId}/jobs") + @list listJobsFromSchedule is ListOperation< { ...CommonListParameters; @@ -498,6 +505,7 @@ interface Jobs { JobPreparationTaskNotSpecified. """) @route("/jobs/{jobId}/jobpreparationandreleasetaskstatus") + @list listJobPreparationAndReleaseTaskStatus is ListOperation< { ...CommonListParameters; @@ -544,6 +552,7 @@ interface Certificates { #deprecated "Warning: This operation is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead." @summary("Lists all of the Certificates that have been added to the specified Account.") @doc("Lists all of the Certificates that have been added to the specified Account.") + @list @route("/certificates") listCertificates is ListOperation< { @@ -746,6 +755,7 @@ interface JobSchedules { @summary("Lists all of the Job Schedules in the specified Account.") @doc("Lists all of the Job Schedules in the specified Account.") @route("/jobschedules") + @list listJobSchedules is ListOperation< { ...CommonListParameters; @@ -783,6 +793,7 @@ interface Tasks { information about subtasks. """) @route("/jobs/{jobId}/tasks") + @list listTasks is ListOperation< { ...CommonListParameters; @@ -871,6 +882,7 @@ interface Tasks { """) @doc("If the Task is not a multi-instance Task then this returns an empty collection.") @route("/jobs/{jobId}/tasks/{taskId}/subtasksinfo") + @list listSubTasks is ReadOperation< { ...CommonParameters; @@ -957,6 +969,7 @@ interface Tasks { @summary("Lists the files in a Task's directory on its Compute Node.") @doc("Lists the files in a Task's directory on its Compute Node.") @route("/jobs/{jobId}/tasks/{taskId}/files") + @list listTaskFiles is ListOperation< { ...CommonListParameters; @@ -1146,6 +1159,7 @@ interface Nodes { @summary("Lists the Compute Nodes in the specified Pool.") @doc("Lists the Compute Nodes in the specified Pool.") + @list @route("/pools/{poolId}/nodes") listNodes is ListOperation< { @@ -1171,6 +1185,7 @@ interface Nodes { @summary("Lists the Compute Nodes Extensions in the specified Pool.") @doc("Lists the Compute Nodes Extensions in the specified Pool.") @route("/pools/{poolId}/nodes/{nodeId}/extensions") + @list listNodeExtensions is ListOperation< { ...CommonListParameters; @@ -1218,6 +1233,7 @@ interface Nodes { @summary("Lists all of the files in Task directories on the specified Compute Node.") @doc("Lists all of the files in Task directories on the specified Compute Node.") @route("/pools/{poolId}/nodes/{nodeId}/files") + @list listNodeFiles is ListOperation< { ...CommonListParameters; diff --git a/specification/botservice/BotService.Management/main.tsp b/specification/botservice/BotService.Management/main.tsp index 2d8b7b385432..da3a6a2122e5 100644 --- a/specification/botservice/BotService.Management/main.tsp +++ b/specification/botservice/BotService.Management/main.tsp @@ -57,6 +57,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/botservice/BotService.Management/models.tsp b/specification/botservice/BotService.Management/models.tsp index 6eefe23ba5d7..0ceb952eeab3 100644 --- a/specification/botservice/BotService.Management/models.tsp +++ b/specification/botservice/BotService.Management/models.tsp @@ -14,7 +14,6 @@ namespace Microsoft.BotService; /** * The list of bot service operation response. */ -@Azure.Core.pagedResult model OperationEntityListResult { /** * The link used to get the next page of operations. @@ -25,7 +24,7 @@ model OperationEntityListResult { /** * The list of operations. */ - @Azure.Core.items + @pageItems value: OperationEntity[]; } @@ -1565,12 +1564,11 @@ model OperationResultsDescription { /** * List of private endpoint connection associated with the specified storage account */ -@pagedResult model PrivateEndpointConnectionListResult { /** * Array of private endpoint connections */ - @items + @pageItems value?: PrivateEndpointConnection[]; /** diff --git a/specification/chaos/Chaos.Management/privateAccess.tsp b/specification/chaos/Chaos.Management/privateAccess.tsp index 1df86ccf9234..eda1180b3e1e 100644 --- a/specification/chaos/Chaos.Management/privateAccess.tsp +++ b/specification/chaos/Chaos.Management/privateAccess.tsp @@ -69,8 +69,8 @@ interface PrivateAccesses { /** * Gets the private link resources possible under private access resource */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" @get + @list privateLinkResources is ArmResourceActionSync< PrivateAccess, void, diff --git a/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp b/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp index 8e11dc4d80c8..3a427bc16f8e 100644 --- a/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp +++ b/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp @@ -349,10 +349,9 @@ model AnomalyDetectionModel { } @doc("Response of listing models.") -@pagedResult model ModelList { @doc("List of models.") - @items + @pageItems models: AnomalyDetectionModel[]; @doc("Number of trained multivariate models.") diff --git a/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp b/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp index 2540235fb63e..00c4dd1aa27b 100644 --- a/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp +++ b/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp @@ -82,6 +82,7 @@ op trainMultivariateModel is MultivariateServiceAction< @route("/multivariate/models") @summary("List Multivariate Models") @doc("List models of a resource.") +@list op listMultivariateModels( ...SkipQueryParameter, ...TopQueryParameter, diff --git a/specification/compute/Common.Management/legacy.tsp b/specification/compute/Common.Management/legacy.tsp index f0eb8dd0b509..ff175c693f86 100644 --- a/specification/compute/Common.Management/legacy.tsp +++ b/specification/compute/Common.Management/legacy.tsp @@ -20,6 +20,7 @@ namespace Azure.ResourceManager.Legacy { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, @@ -346,6 +347,7 @@ namespace Azure.ResourceManager.Legacy { #suppress "@azure-tools/typespec-azure-core/no-private-usage" "For backward compatibility" @get @autoRoute + @list @listsResource(Resource) @segmentOf(Resource) @Private.armRenameListByOperation( diff --git a/specification/compute/Compute.Management/AvailabilitySet.tsp b/specification/compute/Compute.Management/AvailabilitySet.tsp index 452a3ee626c9..02230858dd57 100644 --- a/specification/compute/Compute.Management/AvailabilitySet.tsp +++ b/specification/compute/Compute.Management/AvailabilitySet.tsp @@ -85,6 +85,7 @@ interface AvailabilitySets { */ @get @action("vmSizes") + @list listAvailableSizes is ComputeResourceActionSync< AvailabilitySet, void, diff --git a/specification/compute/Compute.Management/DedicatedHost.tsp b/specification/compute/Compute.Management/DedicatedHost.tsp index 35c53f8628e1..48d8fdc6790c 100644 --- a/specification/compute/Compute.Management/DedicatedHost.tsp +++ b/specification/compute/Compute.Management/DedicatedHost.tsp @@ -88,6 +88,7 @@ interface DedicatedHosts { */ @get @action("hostSizes") + @list listAvailableSizes is ComputeResourceActionSync< DedicatedHost, void, diff --git a/specification/compute/Compute.Management/VirtualMachine.tsp b/specification/compute/Compute.Management/VirtualMachine.tsp index 9c87ef23bf03..dfd7bf6fd5e8 100644 --- a/specification/compute/Compute.Management/VirtualMachine.tsp +++ b/specification/compute/Compute.Management/VirtualMachine.tsp @@ -363,6 +363,7 @@ interface VirtualMachines { */ @get @action("vmSizes") + @list listAvailableSizes is ComputeResourceActionSync< VirtualMachine, void, diff --git a/specification/compute/Compute.Management/VirtualMachineRunCommand.tsp b/specification/compute/Compute.Management/VirtualMachineRunCommand.tsp index 43fff311692a..b5e0f133997e 100644 --- a/specification/compute/Compute.Management/VirtualMachineRunCommand.tsp +++ b/specification/compute/Compute.Management/VirtualMachineRunCommand.tsp @@ -96,6 +96,7 @@ interface VirtualMachineRunCommands { /** * The operation to get all run commands of a Virtual Machine. */ + @list listByVirtualMachine is VirtualMachineRunCommandOps.List< VirtualMachineRunCommand, Parameters = { @@ -194,6 +195,7 @@ interface VirtualMachineScaleSetVMRunCommands { */ #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" @operationId("VirtualMachineScaleSetVMRunCommands_List") + @list list is VirtualMachineScaleSetVMRunCommandOps.List< VirtualMachineRunCommand, Parameters = { diff --git a/specification/compute/Compute.Management/VirtualMachineScaleSet.tsp b/specification/compute/Compute.Management/VirtualMachineScaleSet.tsp index de16b4fb0531..051941d6c4f2 100644 --- a/specification/compute/Compute.Management/VirtualMachineScaleSet.tsp +++ b/specification/compute/Compute.Management/VirtualMachineScaleSet.tsp @@ -279,6 +279,7 @@ interface VirtualMachineScaleSets { @get @operationId("VirtualMachineScaleSets_GetOSUpgradeHistory") @action("osUpgradeHistory") + @list getOSUpgradeHistory is ComputeResourceActionSync< VirtualMachineScaleSet, void, @@ -402,6 +403,7 @@ interface VirtualMachineScaleSets { */ @get @action("skus") + @list listSkus is ComputeResourceActionSync< VirtualMachineScaleSet, void, diff --git a/specification/compute/Compute.Management/VirtualMachineScaleSetVM.tsp b/specification/compute/Compute.Management/VirtualMachineScaleSetVM.tsp index fd04597217e6..ce9879d20869 100644 --- a/specification/compute/Compute.Management/VirtualMachineScaleSetVM.tsp +++ b/specification/compute/Compute.Management/VirtualMachineScaleSetVM.tsp @@ -163,6 +163,7 @@ interface VirtualMachineScaleSetVMS { */ #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" @operationId("VirtualMachineScaleSetVMs_List") + @list list is VirtualMachineScaleSetVMSOps.List< VirtualMachineScaleSetVM, Parameters = { diff --git a/specification/compute/Compute.Management/models.tsp b/specification/compute/Compute.Management/models.tsp index 901a3dd8a235..a0bd9db44da2 100644 --- a/specification/compute/Compute.Management/models.tsp +++ b/specification/compute/Compute.Management/models.tsp @@ -1492,12 +1492,11 @@ model UsageName { /** * The List Virtual Machine operation response. */ -@pagedResult model VirtualMachineSizeListResult { /** * The list of virtual machine sizes. */ - @items + @pageItems @identifiers(#["name"]) value?: VirtualMachineSize[]; @@ -5580,6 +5579,7 @@ model VirtualMachineScaleSetVMExtensionsListResult { * The list of VMSS VM extensions */ @identifiers(#["name", "id"]) + @pageItems value?: VirtualMachineScaleSetVMExtension[]; } @@ -6374,6 +6374,7 @@ model VirtualMachineExtensionsListResult { /** * The list of extensions */ + @pageItems value?: VirtualMachineExtension[]; } @@ -7289,12 +7290,11 @@ model DedicatedHostUpdate extends UpdateResource { /** * The List Dedicated Host sizes operation response. */ -@pagedResult model DedicatedHostSizeListResult { /** * The list of dedicated host sizes. */ - @items + @pageItems value?: string[]; /** diff --git a/specification/compute/Compute.Management/routes.tsp b/specification/compute/Compute.Management/routes.tsp index c5e8d8e51480..06b87b40a779 100644 --- a/specification/compute/Compute.Management/routes.tsp +++ b/specification/compute/Compute.Management/routes.tsp @@ -23,6 +23,7 @@ interface UsageOperationGroup { @autoRoute @get @action("usages") + @list list is ComputeProviderActionSync< Response = ListUsagesResult, Scope = SubscriptionActionScope, @@ -40,6 +41,7 @@ interface VirtualMachineSizesOperationGroup { @autoRoute @get @action("vmSizes") + @list list is ComputeProviderActionSync< Response = VirtualMachineSizeListResult, Scope = SubscriptionActionScope, @@ -57,6 +59,7 @@ interface VirtualMachineScaleSetsOperationGroup { @autoRoute @get @action("virtualMachineScaleSets") + @list listByLocation is ComputeProviderActionSync< Response = VirtualMachineScaleSetListResult, Scope = SubscriptionActionScope, @@ -74,6 +77,7 @@ interface VirtualMachinesOperationGroup { @autoRoute @get @action("virtualMachines") + @list listByLocation is ComputeProviderActionSync< Response = VirtualMachineListResult, Scope = SubscriptionActionScope, @@ -592,6 +596,7 @@ interface VirtualMachineRunCommandsOperationGroup { @autoRoute @get @action("runCommands") + @list list is ComputeProviderActionSync< Response = RunCommandListResult & { #suppress "@azure-tools/typespec-azure-core/no-closed-literal-union" diff --git a/specification/compute/Disk.Management/DiskEncryptionSet.tsp b/specification/compute/Disk.Management/DiskEncryptionSet.tsp index 61aefda4e7ab..128a37ccc7b4 100644 --- a/specification/compute/Disk.Management/DiskEncryptionSet.tsp +++ b/specification/compute/Disk.Management/DiskEncryptionSet.tsp @@ -91,6 +91,7 @@ interface DiskEncryptionSets { #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb" @get @action("associatedResources") + @list listAssociatedResources is ComputeResourceActionSync< DiskEncryptionSet, void, diff --git a/specification/compute/Disk.Management/DiskRestorePoint.tsp b/specification/compute/Disk.Management/DiskRestorePoint.tsp index 906e59a733ed..80aca7e4e279 100644 --- a/specification/compute/Disk.Management/DiskRestorePoint.tsp +++ b/specification/compute/Disk.Management/DiskRestorePoint.tsp @@ -69,6 +69,7 @@ interface DiskRestorePoints { */ #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" @operationId("DiskRestorePoint_ListByRestorePoint") + @list listByRestorePoint is DiskRestorePointsOps.List< DiskRestorePoint, Response = ArmResponse diff --git a/specification/compute/Disk.Management/models.tsp b/specification/compute/Disk.Management/models.tsp index 605c0f4a0110..776ef1a1f4a8 100644 --- a/specification/compute/Disk.Management/models.tsp +++ b/specification/compute/Disk.Management/models.tsp @@ -1529,12 +1529,11 @@ model DiskEncryptionSetUpdateProperties { /** * FIXME: Custom Page for string */ -@Azure.Core.pagedResult @friendlyName("Paged{name}", Resource) @doc("Paged collection of string items") model CustomPage { @doc("The items on this page") - @Azure.Core.items + @pageItems value: Resource[]; @doc("The link to the next page of items") diff --git a/specification/compute/Gallery.Management/Gallery.tsp b/specification/compute/Gallery.Management/Gallery.tsp index 3df43872a673..655a9d32b011 100644 --- a/specification/compute/Gallery.Management/Gallery.tsp +++ b/specification/compute/Gallery.Management/Gallery.tsp @@ -110,6 +110,7 @@ interface Galleries { #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" @get @action("versions") + @list @operationId("SoftDeletedResource_ListByArtifactName") listByArtifactName is ComputeResourceActionSync< Gallery, diff --git a/specification/compute/Sku.Management/routes.tsp b/specification/compute/Sku.Management/routes.tsp index ba6fe462516e..16205dbe057c 100644 --- a/specification/compute/Sku.Management/routes.tsp +++ b/specification/compute/Sku.Management/routes.tsp @@ -9,7 +9,6 @@ import "@typespec/openapi"; using TypeSpec.Rest; using TypeSpec.Http; using Azure.ResourceManager; -using TypeSpec.OpenAPI; namespace Microsoft.Compute; @@ -21,6 +20,7 @@ interface ResourceSkus { @get @action("skus") @autoRoute + @list list is ArmProviderActionSync< Response = ResourceSkusResult, Scope = SubscriptionActionScope, diff --git a/specification/computeschedule/ComputeSchedule.Management/occurrenceroutes.tsp b/specification/computeschedule/ComputeSchedule.Management/occurrenceroutes.tsp index 7e7c561fbbad..d924ad84d1b7 100644 --- a/specification/computeschedule/ComputeSchedule.Management/occurrenceroutes.tsp +++ b/specification/computeschedule/ComputeSchedule.Management/occurrenceroutes.tsp @@ -22,6 +22,7 @@ interface Occurrences { @listsResource(OccurrenceResource) @armResourceList(OccurrenceResource) @get + @list @doc("List resources attached to Scheduled Actions for the given occurrence") listResources( ...ResourceInstanceParameters, diff --git a/specification/computeschedule/ComputeSchedule.Management/routes.tsp b/specification/computeschedule/ComputeSchedule.Management/routes.tsp index 248798f1ef03..1d8af7ed5baf 100644 --- a/specification/computeschedule/ComputeSchedule.Management/routes.tsp +++ b/specification/computeschedule/ComputeSchedule.Management/routes.tsp @@ -150,6 +150,7 @@ interface ScheduledActions { @armResourceList(ScheduledActionResource) @get @doc("List resources attached to Scheduled Actions") + @list listResources( ...ResourceInstanceParameters, ): ArmResponse | ErrorResponse; diff --git a/specification/confluent/Confluent.Management/SCEnvironmentRecord.tsp b/specification/confluent/Confluent.Management/SCEnvironmentRecord.tsp index 3ea5152c8649..2ea1662b98a9 100644 --- a/specification/confluent/Confluent.Management/SCEnvironmentRecord.tsp +++ b/specification/confluent/Confluent.Management/SCEnvironmentRecord.tsp @@ -125,6 +125,7 @@ interface SCEnvironmentRecords { #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get @action("schemaRegistryClusters") + @list listSchemaRegistryClusters is ArmResourceActionSync< SCEnvironmentRecord, void, diff --git a/specification/confluent/Confluent.Management/main.tsp b/specification/confluent/Confluent.Management/main.tsp index 69b6d0408211..cf80a07fc155 100644 --- a/specification/confluent/Confluent.Management/main.tsp +++ b/specification/confluent/Confluent.Management/main.tsp @@ -57,6 +57,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/confluent/Confluent.Management/models.tsp b/specification/confluent/Confluent.Management/models.tsp index 94668d49322d..7aa86437cfb7 100644 --- a/specification/confluent/Confluent.Management/models.tsp +++ b/specification/confluent/Confluent.Management/models.tsp @@ -13,12 +13,11 @@ namespace Microsoft.Confluent; /** * Result of GET request to list Confluent operations. */ -@Azure.Core.pagedResult model OperationListResult { /** * List of Confluent operations supported by the Microsoft.Confluent provider. */ - @Azure.Core.items + @pageItems value: OperationResult[]; /** diff --git a/specification/confluent/Confluent.Management/routes.tsp b/specification/confluent/Confluent.Management/routes.tsp index bb650e5ea5f0..3ed252dabddf 100644 --- a/specification/confluent/Confluent.Management/routes.tsp +++ b/specification/confluent/Confluent.Management/routes.tsp @@ -21,6 +21,7 @@ interface MarketplaceAgreementsOperationGroup { @autoRoute @get @action("agreements") + @list list is ArmProviderActionSync< Response = ConfluentAgreementResourceListResponse, Scope = SubscriptionActionScope, diff --git a/specification/desktopvirtualization/DesktopVirtualization.Management/ActiveSessionHostConfiguration.tsp b/specification/desktopvirtualization/DesktopVirtualization.Management/ActiveSessionHostConfiguration.tsp index 75db9da49885..ca3eeea4f60a 100644 --- a/specification/desktopvirtualization/DesktopVirtualization.Management/ActiveSessionHostConfiguration.tsp +++ b/specification/desktopvirtualization/DesktopVirtualization.Management/ActiveSessionHostConfiguration.tsp @@ -39,6 +39,7 @@ interface ActiveSessionHostConfigurations { */ @action("activeSessionHostConfigurations") @get + @list listByHostPool is Azure.ResourceManager.ArmResourceActionSync< HostPool, void, diff --git a/specification/desktopvirtualization/DesktopVirtualization.Management/ApplicationGroup.tsp b/specification/desktopvirtualization/DesktopVirtualization.Management/ApplicationGroup.tsp index 2bc18647e534..3ebcb20b4bb2 100644 --- a/specification/desktopvirtualization/DesktopVirtualization.Management/ApplicationGroup.tsp +++ b/specification/desktopvirtualization/DesktopVirtualization.Management/ApplicationGroup.tsp @@ -37,6 +37,7 @@ interface StartMenuItems { */ @get @action("startMenuItems") + @list list is Azure.ResourceManager.ArmResourceActionSync< ApplicationGroup, void, diff --git a/specification/desktopvirtualization/DesktopVirtualization.Management/HostPool.tsp b/specification/desktopvirtualization/DesktopVirtualization.Management/HostPool.tsp index 577665314d07..96569b335ba4 100644 --- a/specification/desktopvirtualization/DesktopVirtualization.Management/HostPool.tsp +++ b/specification/desktopvirtualization/DesktopVirtualization.Management/HostPool.tsp @@ -35,6 +35,7 @@ interface AppAttachPackageInfo { */ #suppress "@azure-tools/typespec-client-generator-core/no-unnamed-types" "Backwards compatibility with existing clients." @action("importAppAttachPackageInfo") + @list `import` is ArmResourceActionSync< HostPool, Request = { @@ -53,6 +54,7 @@ interface MSIXImages { */ #suppress "@azure-tools/typespec-client-generator-core/no-unnamed-types" "Backwards compatibility with existing clients." @action("expandMsixImage") + @list expand is ArmResourceActionSync< HostPool, Request = { @@ -69,6 +71,7 @@ interface PrivateLinkResources { */ @action("privateLinkResources") @get + @list listByHostPool is Azure.ResourceManager.ArmResourceActionSync< HostPool, void, @@ -99,6 +102,7 @@ interface PrivateLinkResources { */ @action("privateLinkResources") @get + @list listByWorkspace is Azure.ResourceManager.ArmResourceActionSync< Workspace, void, diff --git a/specification/desktopvirtualization/DesktopVirtualization.Management/ScalingPlan.tsp b/specification/desktopvirtualization/DesktopVirtualization.Management/ScalingPlan.tsp index 93df726b4d8c..53011c6df977 100644 --- a/specification/desktopvirtualization/DesktopVirtualization.Management/ScalingPlan.tsp +++ b/specification/desktopvirtualization/DesktopVirtualization.Management/ScalingPlan.tsp @@ -120,6 +120,7 @@ interface ScalingPlans { */ @get @action("scalingPlans") + @list listByHostPool is Azure.ResourceManager.ArmResourceActionSync< HostPool, void, diff --git a/specification/desktopvirtualization/DesktopVirtualization.Management/UserSession.tsp b/specification/desktopvirtualization/DesktopVirtualization.Management/UserSession.tsp index 71471fb86bd7..4a453bc955a3 100644 --- a/specification/desktopvirtualization/DesktopVirtualization.Management/UserSession.tsp +++ b/specification/desktopvirtualization/DesktopVirtualization.Management/UserSession.tsp @@ -74,6 +74,7 @@ interface UserSessions { @get @action("userSessions") + @list listByHostPool is Azure.ResourceManager.ArmResourceActionSync< HostPool, void, diff --git a/specification/desktopvirtualization/DesktopVirtualization.Management/main.tsp b/specification/desktopvirtualization/DesktopVirtualization.Management/main.tsp index 38cf0b5b1583..b40b75ce0861 100644 --- a/specification/desktopvirtualization/DesktopVirtualization.Management/main.tsp +++ b/specification/desktopvirtualization/DesktopVirtualization.Management/main.tsp @@ -54,6 +54,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/devcenter/DevCenter/DevBox/routes.tsp b/specification/devcenter/DevCenter/DevBox/routes.tsp index 99b32d986e1b..522f4281fa25 100644 --- a/specification/devcenter/DevCenter/DevBox/routes.tsp +++ b/specification/devcenter/DevCenter/DevBox/routes.tsp @@ -39,12 +39,14 @@ interface DevBoxes { @doc("Lists Dev Boxes that the caller has access to in the DevCenter.") @route("/devboxes") @get + @list listAllDevBoxes is Azure.Core.Foundations.Operation<{}, DevBoxListResult>; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Does not fit any standard operation pattern since DevBox has a different path" @doc("Lists Dev Boxes in the Dev Center for a particular user.") @route("/users/{userId}/devboxes") @get + @list listAllDevBoxesByUser is Azure.Core.Foundations.Operation< { ...UserIdParameter; @@ -57,6 +59,7 @@ interface DevBoxes { @doc("Lists all schedules within a pool that are configured by your project administrator.") @route("/projects/{projectName}/pools/{poolName}/schedules") @get + @list listSchedulesByPool is Azure.Core.Foundations.Operation< { ...ProjectNameParameter; @@ -79,6 +82,7 @@ interface DevBoxes { @doc("Lists all schedules within a project that are configured by your project administrator.") @route("/projects/{projectName}/schedules") @added(APIVersions.v2024_02_01) + @list listSchedulesByProject is Azure.Core.Foundations.Operation< { ...ProjectNameParameter; @@ -93,6 +97,7 @@ interface DevBoxes { @doc("Lists Dev Boxes in the project for a particular user.") @route("/projects/{projectName}/users/{userId}/devboxes") @get + @list listDevBoxesByUser is Azure.Core.Foundations.Operation< { ...ProjectNameParameter; @@ -347,6 +352,7 @@ interface DevBoxes { @route("/projects/{projectName}/customizationTasks") @get @added(APIVersions.v2024_05_01_preview) + @list listCustomizationTaskDefinitionsByProject is Azure.Core.Foundations.Operation< { ...ProjectNameParameter; @@ -428,6 +434,7 @@ interface DevBoxes { @doc("Delays all actions.") @action("delay") + @list delayActions is StandardResourceOperations.ResourceCollectionAction< DevBoxAction, { diff --git a/specification/devcenter/DevCenter/Environments/routes.tsp b/specification/devcenter/DevCenter/Environments/routes.tsp index 2ec487522e88..58d0ff2af60c 100644 --- a/specification/devcenter/DevCenter/Environments/routes.tsp +++ b/specification/devcenter/DevCenter/Environments/routes.tsp @@ -17,6 +17,7 @@ interface Environments { @doc("Lists the environments for a project.") @route("/projects/{projectName}/environments") @get + @list listEnvironments is Azure.Core.Foundations.Operation< { ...ProjectNameParameter; @@ -31,6 +32,7 @@ interface Environments { @doc("Lists the environments for a project and user.") @route("/projects/{projectName}/users/{userId}/environments") @get + @list listEnvironmentsByUser is Azure.Core.Foundations.Operation< { ...ProjectNameParameter; @@ -217,6 +219,7 @@ interface Environments { @doc("Lists all environment definitions available for a project.") @route("/projects/{projectName}/environmentDefinitions") @get + @list listEnvironmentDefinitionsByProject is Azure.Core.Foundations.Operation< { ...ProjectNameParameter; @@ -230,6 +233,7 @@ interface Environments { // error when using it in other operation: duplicate-type-name 'PagedEnvironmentDefinition' (model EnvironmentDefinitionListResult) @doc("Lists all environment definitions available within a catalog.") @route("/projects/{projectName}/catalogs/{catalogName}/environmentDefinitions") + @list @get listEnvironmentDefinitionsByCatalog is Azure.Core.Foundations.Operation< { diff --git a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp index 2a9ff7476421..8fd4ae03ef8c 100644 --- a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp +++ b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp @@ -7,7 +7,6 @@ import "./models.tsp"; using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; -using TypeSpec.OpenAPI; namespace Microsoft.Devices; /** @@ -107,9 +106,17 @@ interface PrivateEndpointConnections { /** * List private endpoint connection properties */ - listPrivateEndpointConnections is PrivateEndpointConnectionsOps.List< + @action("privateEndpointConnections") + @get + listPrivateEndpointConnections is ArmProviderActionSync< + void, + ArmResponse, PrivateEndpointConnection, - Response = ArmResponse + { + /** Name of the provisioning service to retrieve. */ + @path @segment("provisioningServices") resourceName: string; + }, + ErrorDetails >; } diff --git a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/ProvisioningServiceDescription.tsp b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/ProvisioningServiceDescription.tsp index 6767214b3202..1d07b6a167ac 100644 --- a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/ProvisioningServiceDescription.tsp +++ b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/ProvisioningServiceDescription.tsp @@ -8,7 +8,7 @@ using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; using TypeSpec.OpenAPI; -using Azure.ResourceManager.Private; + namespace Microsoft.Devices; /** * The description of the provisioning service. @@ -167,6 +167,7 @@ interface ProvisioningServiceDescriptions { #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get @action("skus") + @list @operationId("IotDpsResource_listValidSkus") listValidSkus is ArmResourceActionSync< ProvisioningServiceDescription, @@ -179,6 +180,7 @@ interface ProvisioningServiceDescriptions { * List the primary and secondary keys for a provisioning service. */ @action("listkeys") + @list listKeys is ArmResourceActionSync< ProvisioningServiceDescription, void, diff --git a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/models.tsp b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/models.tsp index af8983d327e0..b11e4643e3f8 100644 --- a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/models.tsp +++ b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/models.tsp @@ -18,12 +18,11 @@ namespace Microsoft.Devices; model PrivateEndpointConnectionsList is PrivateEndpointConnection[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" -@pagedResult model OperationListResult { /** * [Placeholder] Description for value property */ - @items + @pageItems @visibility(Lifecycle.Read) value: Operation[]; @@ -651,6 +650,7 @@ model CertificateListDescription { /** * The array of Certificate objects. */ + @pageItems value?: CertificateResponse[]; } @@ -832,6 +832,7 @@ model PrivateLinkResources { /** * The list of available private link resources for a provisioning service */ + @pageItems value?: GroupIdInformation[]; } diff --git a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/main.tsp b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/main.tsp index a61e479ea6d0..9f40a1341e72 100644 --- a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/main.tsp +++ b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure.Management/main.tsp @@ -710,6 +710,7 @@ interface SubscriptionUsages { @get @armResourceList(Location) @doc("List Quota resources by subscription ID") + @list usages( ...SubscriptionIdParameter, ...Azure.ResourceManager.Foundations.DefaultProviderNamespace, diff --git a/specification/devtestlabs/Microsoft.DevTestLab.Management/Lab.tsp b/specification/devtestlabs/Microsoft.DevTestLab.Management/Lab.tsp index bb36cb0383eb..918360ac2017 100644 --- a/specification/devtestlabs/Microsoft.DevTestLab.Management/Lab.tsp +++ b/specification/devtestlabs/Microsoft.DevTestLab.Management/Lab.tsp @@ -179,6 +179,7 @@ interface Labs { /** * List disk images available for custom image creation. */ + @list listVhds is ArmResourceActionSync>; } diff --git a/specification/devtestlabs/Microsoft.DevTestLab.Management/Schedule.tsp b/specification/devtestlabs/Microsoft.DevTestLab.Management/Schedule.tsp index a0b6d4f06472..83ac0a4817f5 100644 --- a/specification/devtestlabs/Microsoft.DevTestLab.Management/Schedule.tsp +++ b/specification/devtestlabs/Microsoft.DevTestLab.Management/Schedule.tsp @@ -267,13 +267,12 @@ interface Schedules { /** * Execute a schedule. This operation can take a while to complete. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" execute is ScheduleOperationGroupOps.ActionAsync; /** * Lists all applicable schedules */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @list listApplicable is ScheduleOperationGroupOps.ActionSync< Schedule, void, diff --git a/specification/dns/DNS.Management/RecordSet.tsp b/specification/dns/DNS.Management/RecordSet.tsp index 10d9b76d1e10..82c887b94e90 100644 --- a/specification/dns/DNS.Management/RecordSet.tsp +++ b/specification/dns/DNS.Management/RecordSet.tsp @@ -8,7 +8,6 @@ import "./Zone.tsp"; using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; -using TypeSpec.OpenAPI; using Azure.ResourceManager.Private; namespace Microsoft.Network; @@ -197,8 +196,8 @@ interface RecordSets { /** * Lists the record sets of a specified type in a DNS zone. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get + @list @armResourceList(RecordSet) @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}") listByType( diff --git a/specification/dns/DNS.Management/Zone.tsp b/specification/dns/DNS.Management/Zone.tsp index 0e57a6ad150b..b6f324564ba7 100644 --- a/specification/dns/DNS.Management/Zone.tsp +++ b/specification/dns/DNS.Management/Zone.tsp @@ -141,6 +141,7 @@ interface Zones { #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get @action("recordsets") + @list listByDnsZone is ArmResourceActionSync< Zone, void, @@ -166,6 +167,7 @@ interface Zones { */ #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get + @list @action("all") listAllByDnsZone is ArmResourceActionSync< Zone, diff --git a/specification/edge/Microsoft.Edge.Sites.Management/Site.tsp b/specification/edge/Microsoft.Edge.Sites.Management/Site.tsp index 5afe7e48c64d..b64e7478b3de 100644 --- a/specification/edge/Microsoft.Edge.Sites.Management/Site.tsp +++ b/specification/edge/Microsoft.Edge.Sites.Management/Site.tsp @@ -61,6 +61,7 @@ interface SitesByServiceGroup { @route("/providers/Microsoft.Management/serviceGroups/{servicegroupName}/providers/Microsoft.Edge/sites") @doc("list Site at SG scope") @added(Versions.v2025_03_01_preview) + @list listByServiceGroup( ...ApiVersionParameter, diff --git a/specification/edgeorder/EdgeOrder.Management/routes.tsp b/specification/edgeorder/EdgeOrder.Management/routes.tsp index dd440093bc9e..c62aecf07137 100644 --- a/specification/edgeorder/EdgeOrder.Management/routes.tsp +++ b/specification/edgeorder/EdgeOrder.Management/routes.tsp @@ -19,6 +19,7 @@ interface ProductsAndConfigurationsOperationGroup { * List configurations for the given product family, product line and product for the given subscription. */ @autoRoute + @list listConfigurations is ArmProviderActionSync< Request = ConfigurationsRequest, Response = Configurations, @@ -35,6 +36,7 @@ interface ProductsAndConfigurationsOperationGroup { * List product families for the given subscription. */ @autoRoute + @list listProductFamilies is ArmProviderActionSync< Request = ProductFamiliesRequest, Response = ProductFamilies, @@ -58,6 +60,7 @@ interface ProductsAndConfigurationsOperationGroup { */ @autoRoute @action("productFamiliesMetadata") + @list listProductFamiliesMetadata is ArmProviderActionSync< Response = ProductFamiliesMetadata, Scope = SubscriptionActionScope, @@ -79,6 +82,7 @@ interface OrdersOperationGroup { @autoRoute @get @action("orders") + @list listBySubscription is ArmProviderActionSync< Response = OrderResourceList, Scope = SubscriptionActionScope, @@ -102,6 +106,7 @@ interface OrdersOperationGroup { #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orders") @get + @list listByResourceGroup( ...ApiVersionParameter, ...SubscriptionIdParameter, diff --git a/specification/elasticsan/ElasticSan.Management/models.tsp b/specification/elasticsan/ElasticSan.Management/models.tsp index 1d231707013d..a13d5648a48b 100644 --- a/specification/elasticsan/ElasticSan.Management/models.tsp +++ b/specification/elasticsan/ElasticSan.Management/models.tsp @@ -948,7 +948,7 @@ model PrivateLinkResourceListResult { /** * Array of private link resources */ - @items + @pageItems value: PrivateLinkResource[]; /** diff --git a/specification/elasticsan/ElasticSan.Management/routes.tsp b/specification/elasticsan/ElasticSan.Management/routes.tsp index 8ca13770cc5d..4eb9209a1798 100644 --- a/specification/elasticsan/ElasticSan.Management/routes.tsp +++ b/specification/elasticsan/ElasticSan.Management/routes.tsp @@ -22,6 +22,7 @@ interface SkusOperationGroup { @autoRoute @get @action("skus") + @list list is ArmProviderActionSync< Response = SkuInformationList, Scope = SubscriptionActionScope, diff --git a/specification/fabric/Microsoft.Fabric.Management/capacity.tsp b/specification/fabric/Microsoft.Fabric.Management/capacity.tsp index 66562caab208..13226cee5868 100644 --- a/specification/fabric/Microsoft.Fabric.Management/capacity.tsp +++ b/specification/fabric/Microsoft.Fabric.Management/capacity.tsp @@ -68,6 +68,7 @@ interface FabricCapacities { @get @doc("List eligible SKUs for a Microsoft Fabric resource") @segment("skus") + @list listSkusForCapacity( ...ApiVersionParameter, ...SubscriptionIdParameter, @@ -80,6 +81,7 @@ interface FabricCapacities { @get @doc("List eligible SKUs for Microsoft Fabric resource provider") @segment("skus") + @list listSkus( ...ApiVersionParameter, ...SubscriptionIdParameter, @@ -90,6 +92,7 @@ interface FabricCapacities { @get @doc("List the current consumption and limit in this location for the provided subscription") @segment("usages") + @list listUsages( ...ApiVersionParameter, ...SubscriptionIdParameter, diff --git a/specification/fabric/Microsoft.Fabric.Management/models.tsp b/specification/fabric/Microsoft.Fabric.Management/models.tsp index d515c74a8c92..b6ba8b54e6b4 100644 --- a/specification/fabric/Microsoft.Fabric.Management/models.tsp +++ b/specification/fabric/Microsoft.Fabric.Management/models.tsp @@ -107,12 +107,11 @@ union ResourceState { } @doc("An object that represents enumerating SKUs for new resources.") -@pagedResult model RpSkuEnumerationForNewResourceResult { #suppress "@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers" "" @doc("The collection of available SKUs for new resources") @identifiers(#[]) - @items + @pageItems value: Array; @doc("Url for the next page. Null if no more pages available") @@ -138,11 +137,10 @@ model RpSkuProperties { } @doc("An object that represents enumerating SKUs for existing resources") -@pagedResult model RpSkuEnumerationForExistingResourceResult { #suppress "@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers" "" @doc("The SKU details") - @items + @pageItems @identifiers(#[]) value: Array; diff --git a/specification/guestconfiguration/GuestConfiguration.Management/main.tsp b/specification/guestconfiguration/GuestConfiguration.Management/main.tsp index ca6ccc2ba09b..94acffc1310d 100644 --- a/specification/guestconfiguration/GuestConfiguration.Management/main.tsp +++ b/specification/guestconfiguration/GuestConfiguration.Management/main.tsp @@ -58,6 +58,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/guestconfiguration/GuestConfiguration.Management/models.tsp b/specification/guestconfiguration/GuestConfiguration.Management/models.tsp index 5755b32ce298..eada52342702 100644 --- a/specification/guestconfiguration/GuestConfiguration.Management/models.tsp +++ b/specification/guestconfiguration/GuestConfiguration.Management/models.tsp @@ -545,12 +545,11 @@ model Resource { /** * The response of the list guest configuration assignment operation. */ -@pagedResult model GuestConfigurationAssignmentList { /** * Result of the list guest configuration assignment operation. */ - @items + @pageItems value?: GuestConfigurationAssignment[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@ -690,12 +689,11 @@ model AssignmentReportDetails { /** * The response model for the list of Automation operations. */ -@pagedResult model OperationList { /** * List of Automation operations supported by the Automation resource provider. */ - @items + @pageItems @OpenAPI.extension("x-ms-identifiers", #["name"]) value: Operation[]; diff --git a/specification/guestconfiguration/GuestConfiguration.Management/routes.tsp b/specification/guestconfiguration/GuestConfiguration.Management/routes.tsp index b13041995071..d19fe53c2e19 100644 --- a/specification/guestconfiguration/GuestConfiguration.Management/routes.tsp +++ b/specification/guestconfiguration/GuestConfiguration.Management/routes.tsp @@ -20,6 +20,7 @@ interface GuestConfigurationAssignmentsOperationGroup { #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.GuestConfiguration/guestConfigurationAssignments") @get + @list rGList( ...ApiVersionParameter, ...ResourceGroupParameter, diff --git a/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/CloudHsmCluster.tsp b/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/CloudHsmCluster.tsp index 5b278f67aed8..f044543afe36 100644 --- a/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/CloudHsmCluster.tsp +++ b/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/CloudHsmCluster.tsp @@ -155,6 +155,7 @@ interface CloudHsmClusters { #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get @action("privateLinkResources") + @list listByCloudHsmCluster is ArmResourceActionSync< CloudHsmCluster, void, diff --git a/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/DedicatedHsm.tsp b/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/DedicatedHsm.tsp index 98ee35be2170..dd1e45305bab 100644 --- a/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/DedicatedHsm.tsp +++ b/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/DedicatedHsm.tsp @@ -115,6 +115,7 @@ interface DedicatedHsms { #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get @action("outboundNetworkDependenciesEndpoints") + @list listOutboundNetworkDependenciesEndpoints is ArmResourceActionSync< DedicatedHsm, void, diff --git a/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/models.tsp b/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/models.tsp index 99637ac5c8cd..80a79db7d463 100644 --- a/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/models.tsp +++ b/specification/hardwaresecuritymodules/HardwareSecurityModules.Management/models.tsp @@ -11,7 +11,7 @@ using Azure.ResourceManager.Foundations; namespace Microsoft.HardwareSecurityModules; @@nextLink(CommonTypes.PrivateLinkResourceListResult.nextLink); -@@Azure.Core.items(CommonTypes.PrivateLinkResourceListResult.value); +@@pageItems(CommonTypes.PrivateLinkResourceListResult.value); /** * State of security domain activation diff --git a/specification/hybridkubernetes/HybridKubernetes.Management/main.tsp b/specification/hybridkubernetes/HybridKubernetes.Management/main.tsp index bcf23a91d34f..66ff3f347efc 100644 --- a/specification/hybridkubernetes/HybridKubernetes.Management/main.tsp +++ b/specification/hybridkubernetes/HybridKubernetes.Management/main.tsp @@ -51,6 +51,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/hybridkubernetes/HybridKubernetes.Management/models.tsp b/specification/hybridkubernetes/HybridKubernetes.Management/models.tsp index 6942550f6ac6..665c9508207b 100644 --- a/specification/hybridkubernetes/HybridKubernetes.Management/models.tsp +++ b/specification/hybridkubernetes/HybridKubernetes.Management/models.tsp @@ -636,12 +636,11 @@ model ConnectedClusterList is Azure.Core.Page; /** * The paginated list of connected cluster API operations. */ -@Azure.Core.pagedResult model OperationList { /** * The list of connected cluster API operations. */ - @Azure.Core.items + @pageItems @visibility(Lifecycle.Read) @OpenAPI.extension("x-ms-identifiers", #["name"]) value: Operation[]; diff --git a/specification/keyvault/Security.KeyVault.Certificates/client.tsp b/specification/keyvault/Security.KeyVault.Certificates/client.tsp index a02c78bcc95d..7b437b770673 100644 --- a/specification/keyvault/Security.KeyVault.Certificates/client.tsp +++ b/specification/keyvault/Security.KeyVault.Certificates/client.tsp @@ -104,6 +104,7 @@ op getCertificate is KeyVaultOperation< @summary("List certificates in a specified key vault") @route("/certificates") @get +@list op listCertificateProperties is KeyVaultOperation< { /** @@ -123,6 +124,7 @@ op listCertificateProperties is KeyVaultOperation< @summary("List certificate issuers for a specified key vault.") @route("/certificates/issuers") @get +@list op listIssuerProperties is KeyVaultOperation<{}, CertificateIssuerListResult>; /** @@ -133,6 +135,7 @@ op listIssuerProperties is KeyVaultOperation<{}, CertificateIssuerListResult>; @summary("List the versions of a certificate.") @route("/certificates/{certificate-name}/versions") @get +@list op listCertificatePropertiesVersions is KeyVaultOperation< { /** @@ -153,6 +156,7 @@ op listCertificatePropertiesVersions is KeyVaultOperation< @summary("Lists the deleted certificates in the specified vault currently available for recovery.") @route("/deletedcertificates") @get +@list op listDeletedCertificateProperties is KeyVaultOperation< { /** diff --git a/specification/keyvault/Security.KeyVault.Certificates/models.tsp b/specification/keyvault/Security.KeyVault.Certificates/models.tsp index 2d33bf984fff..1ae173d8e38f 100644 --- a/specification/keyvault/Security.KeyVault.Certificates/models.tsp +++ b/specification/keyvault/Security.KeyVault.Certificates/models.tsp @@ -143,12 +143,11 @@ enum CertificatePolicyAction { /** * The certificate list result. */ -@pagedResult model CertificateListResult { /** * A response message containing a list of certificates in the key vault along with a link to the next page of certificates. */ - @items + @pageItems value?: CertificateItem[]; /** @@ -608,12 +607,11 @@ model Contact { /** * The certificate issuer list result. */ -@pagedResult model CertificateIssuerListResult { /** * A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers. */ - @items + @pageItems @visibility(Lifecycle.Read) value?: CertificateIssuerItem[]; @@ -1023,12 +1021,11 @@ model CertificateRestoreParameters { /** * A list of certificates that have been deleted in this vault. */ -@pagedResult model DeletedCertificateListResult { /** * A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates. */ - @items + @pageItems @visibility(Lifecycle.Read) value?: DeletedCertificateItem[]; diff --git a/specification/keyvault/Security.KeyVault.Certificates/routes.tsp b/specification/keyvault/Security.KeyVault.Certificates/routes.tsp index 039ef7a89bfd..8e85f01ac221 100644 --- a/specification/keyvault/Security.KeyVault.Certificates/routes.tsp +++ b/specification/keyvault/Security.KeyVault.Certificates/routes.tsp @@ -17,6 +17,7 @@ namespace KeyVault; @summary("List certificates in a specified key vault") @route("/certificates") @get +@list op getCertificates is KeyVaultOperation< { /** @@ -99,6 +100,7 @@ op deleteCertificateContacts is KeyVaultOperation<{}, Contacts>; @summary("List certificate issuers for a specified key vault.") @route("/certificates/issuers") @get +@list op getCertificateIssuers is KeyVaultOperation< { /** @@ -269,6 +271,7 @@ op importCertificate is KeyVaultOperation< @summary("List the versions of a certificate.") @route("/certificates/{certificate-name}/versions") @get +@list op getCertificateVersions is KeyVaultOperation< { /** @@ -533,6 +536,7 @@ op restoreCertificate is KeyVaultOperation< @summary("Lists the deleted certificates in the specified vault currently available for recovery.") @route("/deletedcertificates") @get +@list op getDeletedCertificates is KeyVaultOperation< { /** diff --git a/specification/keyvault/Security.KeyVault.Keys/client.tsp b/specification/keyvault/Security.KeyVault.Keys/client.tsp index 5b0dd3b1a00b..c6816b655cbe 100644 --- a/specification/keyvault/Security.KeyVault.Keys/client.tsp +++ b/specification/keyvault/Security.KeyVault.Keys/client.tsp @@ -391,6 +391,7 @@ op getKeyAttestation is KeyVaultOperation< @summary("Retrieves a list of individual key versions with the same key name.") @route("/keys/{key-name}/versions") @get +@list op listKeyPropertiesVersions is KeyVaultOperation< { /** @@ -411,6 +412,7 @@ op listKeyPropertiesVersions is KeyVaultOperation< @summary("List keys in the specified vault.") @route("/keys") @get +@list op listKeyProperties is KeyVaultOperation<{}, KeyListResult>; /** @@ -421,6 +423,7 @@ op listKeyProperties is KeyVaultOperation<{}, KeyListResult>; @summary("Lists the deleted keys in the specified vault.") @route("/deletedkeys") @get +@list op listDeletedKeyProperties is KeyVaultOperation<{}, DeletedKeyListResult>; @@override(getKeyVersions, listKeyPropertiesVersions, "go"); diff --git a/specification/keyvault/Security.KeyVault.Keys/models.tsp b/specification/keyvault/Security.KeyVault.Keys/models.tsp index a321d10181b4..dffa4e8ab6ff 100644 --- a/specification/keyvault/Security.KeyVault.Keys/models.tsp +++ b/specification/keyvault/Security.KeyVault.Keys/models.tsp @@ -713,12 +713,11 @@ model KeyUpdateParameters { /** * The key list result. */ -@pagedResult model KeyListResult { /** * A response message containing a list of keys in the key vault along with a link to the next page of keys. */ - @items + @pageItems @visibility(Lifecycle.Read) value?: KeyItem[]; @@ -945,12 +944,11 @@ model KeyReleaseResult { /** * A list of keys that have been deleted in this vault. */ -@pagedResult model DeletedKeyListResult { /** * A response message containing a list of deleted keys in the key vault along with a link to the next page of deleted keys. */ - @items + @pageItems @visibility(Lifecycle.Read) value?: DeletedKeyItem[]; diff --git a/specification/keyvault/Security.KeyVault.Keys/routes.tsp b/specification/keyvault/Security.KeyVault.Keys/routes.tsp index 63a3dc3c97f3..3fec03d7a63d 100644 --- a/specification/keyvault/Security.KeyVault.Keys/routes.tsp +++ b/specification/keyvault/Security.KeyVault.Keys/routes.tsp @@ -177,6 +177,7 @@ op getKey is KeyVaultOperation< @summary("Retrieves a list of individual key versions with the same key name.") @route("/keys/{key-name}/versions") @get +@list op getKeyVersions is KeyVaultOperation< { /** @@ -205,6 +206,7 @@ op getKeyVersions is KeyVaultOperation< @summary("List keys in the specified vault.") @route("/keys") @get +@list op getKeys is KeyVaultOperation< { /** @@ -522,6 +524,7 @@ op release is KeyVaultOperation< @summary("Lists the deleted keys in the specified vault.") @route("/deletedkeys") @get +@list op getDeletedKeys is KeyVaultOperation< { /** diff --git a/specification/keyvault/Security.KeyVault.RBAC/models.tsp b/specification/keyvault/Security.KeyVault.RBAC/models.tsp index ebce3eaac4af..4dd82c6ba493 100644 --- a/specification/keyvault/Security.KeyVault.RBAC/models.tsp +++ b/specification/keyvault/Security.KeyVault.RBAC/models.tsp @@ -335,12 +335,11 @@ model RoleDefinitionCreateParameters { /** * Role definition list operation result. */ -@pagedResult model RoleDefinitionListResult { /** * Role definition list. */ - @items + @pageItems value?: RoleDefinition[]; /** @@ -426,12 +425,11 @@ model RoleAssignmentProperties { /** * Role assignment list operation result. */ -@pagedResult model RoleAssignmentListResult { /** * Role assignment list. */ - @items + @pageItems value?: RoleAssignment[]; /** diff --git a/specification/keyvault/Security.KeyVault.RBAC/routes.tsp b/specification/keyvault/Security.KeyVault.RBAC/routes.tsp index 5b2144fde84a..a4369150c186 100644 --- a/specification/keyvault/Security.KeyVault.RBAC/routes.tsp +++ b/specification/keyvault/Security.KeyVault.RBAC/routes.tsp @@ -82,6 +82,7 @@ interface RoleDefinitions { */ @route("/{+scope}/providers/Microsoft.Authorization/roleDefinitions") @get + @list list is KeyVaultOperation< { /** @@ -175,6 +176,7 @@ interface RoleAssignments { */ @route("/{+scope}/providers/Microsoft.Authorization/roleAssignments") @get + @list listForScope is KeyVaultOperation< { /** diff --git a/specification/keyvault/Security.KeyVault.Secrets/client.tsp b/specification/keyvault/Security.KeyVault.Secrets/client.tsp index 0109ea1aa7ac..cb9dcf38c18e 100644 --- a/specification/keyvault/Security.KeyVault.Secrets/client.tsp +++ b/specification/keyvault/Security.KeyVault.Secrets/client.tsp @@ -89,6 +89,7 @@ op getSecret is KeyVaultOperation< @summary("List secrets in a specified key vault.") @route("/secrets") @get +@list op listSecretProperties is KeyVaultOperation<{}, SecretListResult>; /** @@ -99,6 +100,7 @@ op listSecretProperties is KeyVaultOperation<{}, SecretListResult>; @summary("Lists deleted secrets for the specified vault.") @route("/deletedsecrets") @get +@list op listDeletedSecretProperties is KeyVaultOperation< {}, DeletedSecretListResult @@ -112,6 +114,7 @@ op listDeletedSecretProperties is KeyVaultOperation< @summary("List all versions of the specified secret.") @route("/secrets/{secret-name}/versions") @get +@list op listSecretPropertiesVersions is KeyVaultOperation< { /** diff --git a/specification/keyvault/Security.KeyVault.Secrets/models.tsp b/specification/keyvault/Security.KeyVault.Secrets/models.tsp index 5e56404e69ee..701ad0def596 100644 --- a/specification/keyvault/Security.KeyVault.Secrets/models.tsp +++ b/specification/keyvault/Security.KeyVault.Secrets/models.tsp @@ -233,12 +233,11 @@ model SecretUpdateParameters { /** * The secret list result. */ -@pagedResult model SecretListResult { /** * A response message containing a list of secrets in the key vault along with a link to the next page of secrets. */ - @items + @pageItems @visibility(Lifecycle.Read) value?: SecretItem[]; @@ -284,12 +283,11 @@ model SecretItem { /** * The deleted secret list result */ -@pagedResult model DeletedSecretListResult { /** * A response message containing a list of deleted secrets in the key vault along with a link to the next page of deleted secrets. */ - @items + @pageItems @visibility(Lifecycle.Read) value?: DeletedSecretItem[]; diff --git a/specification/keyvault/Security.KeyVault.Secrets/routes.tsp b/specification/keyvault/Security.KeyVault.Secrets/routes.tsp index 6123ccab3be8..b87987bdf4c0 100644 --- a/specification/keyvault/Security.KeyVault.Secrets/routes.tsp +++ b/specification/keyvault/Security.KeyVault.Secrets/routes.tsp @@ -134,6 +134,7 @@ op getSecret is KeyVaultOperation< @summary("List secrets in a specified key vault.") @route("/secrets") @get +@list op getSecrets is KeyVaultOperation< { /** @@ -155,6 +156,7 @@ op getSecrets is KeyVaultOperation< @summary("List all versions of the specified secret.") @route("/secrets/{secret-name}/versions") @get +@list op getSecretVersions is KeyVaultOperation< { /** @@ -183,6 +185,7 @@ op getSecretVersions is KeyVaultOperation< @summary("Lists deleted secrets for the specified vault.") @route("/deletedsecrets") @get +@list op getDeletedSecrets is KeyVaultOperation< { /** diff --git a/specification/loadtestservice/LoadTestService.Management/routes.tsp b/specification/loadtestservice/LoadTestService.Management/routes.tsp index 55133a607c4d..9f8e6fc129ec 100644 --- a/specification/loadtestservice/LoadTestService.Management/routes.tsp +++ b/specification/loadtestservice/LoadTestService.Management/routes.tsp @@ -59,6 +59,7 @@ interface LoadTests { #suppress "@azure-tools/typespec-azure-core/no-openapi" "OperationID already published." @operationId("LoadTests_ListOutboundNetworkDependenciesEndpoints") @doc("Lists the endpoints that agents may call as part of load testing.") + @list outboundNetworkDependenciesEndpoints is CustomOperations.ArmResourceActionSyncCustomGet< LoadTestResource, void, diff --git a/specification/loadtestservice/LoadTestService/models.tsp b/specification/loadtestservice/LoadTestService/models.tsp index 3c4caa9a7f03..5d9b18c695cb 100644 --- a/specification/loadtestservice/LoadTestService/models.tsp +++ b/specification/loadtestservice/LoadTestService/models.tsp @@ -1176,7 +1176,6 @@ model DimensionValue { } @doc("Metrics dimension values.") -@pagedResult model DimensionValueList { @doc("The dimension name") @visibility(Lifecycle.Read) @@ -1184,7 +1183,7 @@ model DimensionValueList { name?: string; @doc("The dimension value") - @items + @pageItems value?: string[]; @doc("Link for the next set of values in case of paginated results, if applicable.") diff --git a/specification/loadtestservice/LoadTestService/routes.tsp b/specification/loadtestservice/LoadTestService/routes.tsp index f3aa9bb5db7d..af4cc0046024 100644 --- a/specification/loadtestservice/LoadTestService/routes.tsp +++ b/specification/loadtestservice/LoadTestService/routes.tsp @@ -293,6 +293,7 @@ interface LoadTestRun { @doc("List the metric values for a load test run.") @route("/test-runs/{testRunId}/metrics") @post + @list listMetrics is Azure.Core.Foundations.Operation< { @doc(""" @@ -323,6 +324,7 @@ interface LoadTestRun { @summary("List the dimension values for the given metric dimension name.") @doc("List the dimension values for the given metric dimension name.") @route("/test-runs/{testRunId}/metric-dimensions/{name}/values") + @list listMetricDimensionValues is Azure.Core.Foundations.Operation< { @doc(""" diff --git a/specification/machinelearningservices/AzureAI.Assets/model.tsp b/specification/machinelearningservices/AzureAI.Assets/model.tsp index c9ffdcb6d241..8ed86b525bc0 100644 --- a/specification/machinelearningservices/AzureAI.Assets/model.tsp +++ b/specification/machinelearningservices/AzureAI.Assets/model.tsp @@ -45,11 +45,10 @@ model Index is AssetVersion { } @doc("Paged collection of IndexVersion items.") -@pagedResult model PagedIndex { @doc("The list of Indexes.") @Azure.ResourceManager.identifiers(#[]) - @items + @pageItems value: Index[]; @doc("The link to the next page of items") @@ -68,12 +67,11 @@ model Prompt is AssetVersion { } @doc("Paged collection of PromptVersion items") -@pagedResult @added(Versions.`2024-05-01-preview`) model PagedPrompt { @doc("The list of Prompts.") @Azure.ResourceManager.identifiers(#[]) - @items + @pageItems value: Prompt[]; @doc("The link to the next page of items") diff --git a/specification/machinelearningservices/AzureAI.Assets/routes.tsp b/specification/machinelearningservices/AzureAI.Assets/routes.tsp index 5090bcd55e58..e595a7635859 100644 --- a/specification/machinelearningservices/AzureAI.Assets/routes.tsp +++ b/specification/machinelearningservices/AzureAI.Assets/routes.tsp @@ -62,6 +62,7 @@ interface Indexes { @doc("List the versions of an Index given the name.") @route("/indexes/{name}/versions") @get + @list list is Azure.Core.Foundations.Operation< { @doc("Name of the index.") @@ -127,6 +128,7 @@ interface Indexes { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." @doc("List the latest version of each index. Latest is defined by most recent created by date.") @route("/indexes") + @list @get listLatest is Azure.Core.Foundations.Operation< { @@ -183,6 +185,7 @@ interface Prompts { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Waiting for bug fix: https://github.com/Azure/typespec-azure-pr/issues/3739." @doc("List the versions of a Prompt given the name.") + @list @route("/prompts/{name}/versions") @get list is Azure.Core.Foundations.Operation< @@ -241,6 +244,7 @@ interface Prompts { >; #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Need to define route." + @list @doc("List the latest version of each prompt. Latest is defined by most recent created by date.") @route("/prompts") @get diff --git a/specification/maintenance/Maintenance.Management/models.tsp b/specification/maintenance/Maintenance.Management/models.tsp index 1a51c504e161..0698c1dbf91c 100644 --- a/specification/maintenance/Maintenance.Management/models.tsp +++ b/specification/maintenance/Maintenance.Management/models.tsp @@ -205,12 +205,11 @@ model ErrorDetails { /** * Response for MaintenanceConfigurations list */ -@pagedResult model ListMaintenanceConfigurationsResult { /** * The list of maintenance Configurations */ - @items + @pageItems value?: MaintenanceConfiguration[]; /** @@ -474,12 +473,11 @@ model TagSettingsProperties { /** * Response for ConfigurationAssignments list */ -@pagedResult model ListConfigurationAssignmentsResult { /** * The list of configuration Assignments */ - @items + @pageItems value?: ConfigurationAssignment[]; /** @@ -492,12 +490,11 @@ model ListConfigurationAssignmentsResult { /** * Response for ApplyUpdate list */ -@pagedResult model ListApplyUpdate { /** * The list of apply updates */ - @items + @pageItems value?: ApplyUpdate[]; /** @@ -535,12 +532,11 @@ model OperationInfo { /** * Response for Updates list */ -@pagedResult model ListUpdatesResult { /** * The pending updates */ - @items + @pageItems @OpenAPI.extension("x-ms-identifiers", #[]) value?: Update[]; @@ -601,7 +597,6 @@ model UpdateProperties { /** * Result of the List Operations operation */ -@Azure.Core.pagedResult model OperationsListResult { /** * The link used to get the next page of operations. @@ -612,7 +607,7 @@ model OperationsListResult { /** * A collection of operations */ - @Azure.Core.items + @pageItems @OpenAPI.extension("x-ms-identifiers", #["name"]) value?: Operation[]; } diff --git a/specification/maintenance/Maintenance.Management/routes.tsp b/specification/maintenance/Maintenance.Management/routes.tsp index b99f79adb24d..6212069046c3 100644 --- a/specification/maintenance/Maintenance.Management/routes.tsp +++ b/specification/maintenance/Maintenance.Management/routes.tsp @@ -132,6 +132,7 @@ interface ApplyUpdateForResourceGroupOperationGroup { @summary("Get Configuration records within a subscription and resource group") @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Maintenance/applyUpdates") @get + @list list( ...ApiVersionParameter, ...SubscriptionIdParameter, @@ -148,6 +149,7 @@ interface ConfigurationAssignmentForResourceGroupOperationGroup { @summary("Get Configuration records within a subscription and resource group") @route("/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/configurationAssignments") @get + @list list( ...ApiVersionParameter, ...SubscriptionIdParameter, @@ -182,6 +184,7 @@ interface UpdatesOperationGroup { @summary("Get Updates to resource") @route("/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceParentType}/{resourceParentName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates") @get + @list listParent( ...ApiVersionParameter, ...SubscriptionIdParameter, @@ -224,6 +227,7 @@ interface UpdatesOperationGroup { @summary("Get Updates to resource") @route("/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceName}/providers/Microsoft.Maintenance/updates") @get + @list list( ...ApiVersionParameter, ...SubscriptionIdParameter, diff --git a/specification/notificationhubs/Notificationhubs.Management/main.tsp b/specification/notificationhubs/Notificationhubs.Management/main.tsp index 83ecd9e7942e..c926b9822d87 100644 --- a/specification/notificationhubs/Notificationhubs.Management/main.tsp +++ b/specification/notificationhubs/Notificationhubs.Management/main.tsp @@ -55,6 +55,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/portal/TenantConfiguration.Management/TenantConfiguration.tsp b/specification/portal/TenantConfiguration.Management/TenantConfiguration.tsp index 72e6326ab8b1..6dcd24806bae 100644 --- a/specification/portal/TenantConfiguration.Management/TenantConfiguration.tsp +++ b/specification/portal/TenantConfiguration.Management/TenantConfiguration.tsp @@ -63,6 +63,7 @@ interface ListTenantConfigurationViolationsOperations { @armResourceCollectionAction @post @operationId("ListTenantConfigurationViolations_List") + @list list(...ApiVersionParameter): ArmResponse | ErrorResponse; } diff --git a/specification/powerbidedicated/Powerbidedicated.Management/main.tsp b/specification/powerbidedicated/Powerbidedicated.Management/main.tsp index 5ebfa7643b73..4adf3f7a59bf 100644 --- a/specification/powerbidedicated/Powerbidedicated.Management/main.tsp +++ b/specification/powerbidedicated/Powerbidedicated.Management/main.tsp @@ -61,6 +61,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/powerbidedicated/Powerbidedicated.Management/models.tsp b/specification/powerbidedicated/Powerbidedicated.Management/models.tsp index 67b583b4d85e..3045b225bec5 100644 --- a/specification/powerbidedicated/Powerbidedicated.Management/models.tsp +++ b/specification/powerbidedicated/Powerbidedicated.Management/models.tsp @@ -327,12 +327,11 @@ model DedicatedCapacityUpdateParameters { /** * An array of Dedicated capacities resources. */ -@pagedResult model DedicatedCapacities { /** * An array of Dedicated capacities resources. */ - @items + @pageItems value: DedicatedCapacity[]; /** @@ -602,12 +601,11 @@ model AutoScaleVCoreUpdateParameters { * An array of auto scale v-core resources. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" -@pagedResult model AutoScaleVCoreListResult { /** * An array of auto scale v-core resources. */ - @items + @pageItems value: AutoScaleVCore[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@ -618,13 +616,12 @@ model AutoScaleVCoreListResult { /** * Result listing capacities. It contains a list of operations and a URL link to get the next set of results. */ -@pagedResult model OperationListResult { /** * List of capacities supported by the Microsoft.PowerBIDedicated resource provider. */ @OpenAPI.extension("x-ms-identifiers", #["name"]) - @items + @pageItems @visibility(Lifecycle.Read) value?: Operation[]; diff --git a/specification/privatedns/PrivateDNS.Management/PrivateZone.tsp b/specification/privatedns/PrivateDNS.Management/PrivateZone.tsp index e99909a99571..db2a5888f681 100644 --- a/specification/privatedns/PrivateDNS.Management/PrivateZone.tsp +++ b/specification/privatedns/PrivateDNS.Management/PrivateZone.tsp @@ -160,6 +160,7 @@ interface PrivateZones { */ @get @action("ALL") + @list recordSetsList is ArmResourceActionSync< PrivateZone, void, diff --git a/specification/privatedns/PrivateDNS.Management/RecordSet.tsp b/specification/privatedns/PrivateDNS.Management/RecordSet.tsp index 1eea807dd692..ccc1df5c358e 100644 --- a/specification/privatedns/PrivateDNS.Management/RecordSet.tsp +++ b/specification/privatedns/PrivateDNS.Management/RecordSet.tsp @@ -163,6 +163,7 @@ interface RecordSets { /** * Lists the record sets of a specified type in a Private DNS zone. */ + @list listByType is RecordSetOperationOps.Read< RecordSet, Parameters = { diff --git a/specification/quantum/Microsoft.Quantum.Management/routes.tsp b/specification/quantum/Microsoft.Quantum.Management/routes.tsp index 94b8fe0c26ae..77b0e4ae0457 100644 --- a/specification/quantum/Microsoft.Quantum.Management/routes.tsp +++ b/specification/quantum/Microsoft.Quantum.Management/routes.tsp @@ -11,7 +11,6 @@ using TypeSpec.Http; using Azure.Core; using Azure.ResourceManager; using Azure.ResourceManager.Foundations; -using TypeSpec.OpenAPI; using TypeSpec.Versioning; namespace Microsoft.Quantum; @@ -30,6 +29,7 @@ interface Offerings { @autoRoute @get @action("offerings") + @list list is ArmProviderActionSync< Response = OfferingsListResult, Scope = SubscriptionActionScope, diff --git a/specification/recoveryservices/Recoveryservices.Management/Vault.tsp b/specification/recoveryservices/Recoveryservices.Management/Vault.tsp index 1e454c09752b..b4b02212c0af 100644 --- a/specification/recoveryservices/Recoveryservices.Management/Vault.tsp +++ b/specification/recoveryservices/Recoveryservices.Management/Vault.tsp @@ -299,6 +299,7 @@ interface Vaults { */ @get @action("replicationUsages") + @list list is VaultOps.ActionSync>; /** @@ -306,6 +307,7 @@ interface Vaults { */ @get @action("usages") + @list listByVaults is VaultOps.ActionSync>; } @armResourceOperations diff --git a/specification/recoveryservices/Recoveryservices.Management/main.tsp b/specification/recoveryservices/Recoveryservices.Management/main.tsp index a8d278d210b4..3270a40b61ec 100644 --- a/specification/recoveryservices/Recoveryservices.Management/main.tsp +++ b/specification/recoveryservices/Recoveryservices.Management/main.tsp @@ -54,6 +54,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/recoveryservices/Recoveryservices.Management/models.tsp b/specification/recoveryservices/Recoveryservices.Management/models.tsp index 00b808e68364..1a7dbe0e312c 100644 --- a/specification/recoveryservices/Recoveryservices.Management/models.tsp +++ b/specification/recoveryservices/Recoveryservices.Management/models.tsp @@ -474,13 +474,12 @@ model ResourceCertificateDetails { /** * Replication usages for vault. */ -@pagedResult model ReplicationUsageList { /** * The list of replication usages for the given vault. */ #suppress "@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - @items + @pageItems value?: ReplicationUsage[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@ -1521,12 +1520,11 @@ model OperationResource { /** * Usage for vault. */ -@pagedResult model VaultUsageList { /** * The list of usages for the given vault. */ - @items + @pageItems value?: VaultUsage[]; #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" diff --git a/specification/riskiq/Easm/models.tsp b/specification/riskiq/Easm/models.tsp index f9842a3f86ac..0eeb67b93ead 100644 --- a/specification/riskiq/Easm/models.tsp +++ b/specification/riskiq/Easm/models.tsp @@ -207,7 +207,6 @@ model AsAsset extends InventoryAsset { } @doc("The page of assets that match the provided metric.") -@pagedResult model AssetPageResult { @doc("The total number of items available in the full result set.") totalElements?: int64; @@ -220,7 +219,7 @@ model AssetPageResult { nextLink?: string; @doc("The items in the current page of results.") - @items + @pageItems value?: AssetResource[]; } @@ -708,7 +707,6 @@ model DiscoGroup { } #suppress "@azure-tools/typespec-azure-core/documentation-required" "Documentation will be added next preview version" -@pagedResult model DiscoRunPageResult { @doc("The total number of items available in the full result set.") totalElements?: int64; @@ -718,7 +716,7 @@ model DiscoRunPageResult { nextLink?: string; @doc("The items in the current page of results.") - @items + @pageItems value?: DiscoRunResult[]; } @@ -1521,7 +1519,6 @@ model DeltaResult { #suppress "@azure-tools/typespec-azure-core/documentation-required" "Documentation will be added next preview version" @Versioning.added(Versions.v2024_03_01_preview) -@pagedResult model DeltaPageResult { @doc("The total number of items available in the full result set.") totalElements?: int64; @@ -1531,7 +1528,7 @@ model DeltaPageResult { nextLink?: string; @doc("The items in the current page of results.") - @items + @pageItems value?: DeltaResult[]; } diff --git a/specification/riskiq/Easm/routes.tsp b/specification/riskiq/Easm/routes.tsp index a2b7fef5722f..d8704c1f4808 100644 --- a/specification/riskiq/Easm/routes.tsp +++ b/specification/riskiq/Easm/routes.tsp @@ -59,6 +59,7 @@ interface Assets { @doc("Retrieve a list of deltas for the provided time range.") @action("getDeltaDetails") @Versioning.added(Versions.v2024_03_01_preview) + @list getDeltaDetails is Operations.ResourceCollectionAction< AssetResource, BodyParameter, @@ -148,6 +149,7 @@ interface DiscoveryGroups { @route("/discoGroups/{groupName}/runs") @get @clientName("GetDiscoveryGroupRuns", "csharp") + @list listRuns is Foundations.Operation< DiscoGroupsListRunsParameter, DiscoRunPageResult diff --git a/specification/schemaregistry/SchemaRegistry/main.tsp b/specification/schemaregistry/SchemaRegistry/main.tsp index a2b7a2c6d0d7..7cfa2fe6a1d7 100644 --- a/specification/schemaregistry/SchemaRegistry/main.tsp +++ b/specification/schemaregistry/SchemaRegistry/main.tsp @@ -62,6 +62,7 @@ alias resourceOperations = Azure.Core.StandardResourceOperations; @summary("Get list of schema groups.") @doc("Gets the list of schema groups user is authorized to access.") @route("/$schemaGroups") +@list op listSchemaGroups is Azure.Core.Foundations.Operation<{}, SchemaGroups, {}>; // GET https://{namespaceName}.servicebus.windows.net/$schemaGroups/{groupName}/schemas/{schemaName}/versions?api-version={apiVersion} @@ -69,6 +70,7 @@ op listSchemaGroups is Azure.Core.Foundations.Operation<{}, SchemaGroups, {}>; @summary("List schema versions.") @doc("Gets the list of all versions of one schema.") @route("/$schemaGroups/{groupName}/schemas/{schemaName}/versions") +@list op listSchemaVersions is Azure.Core.Foundations.Operation< { @doc("Name of schema group.") @@ -238,11 +240,10 @@ model Schema { /** * The list of schema group names with server paging support. */ -@Azure.Core.pagedResult model SchemaGroups { /** The collection of pageable schema group name items. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "Already public casing from service is not camelCase." - @Azure.Core.items + @pageItems Value: string[]; /** The link to the next page of items */ @@ -254,11 +255,10 @@ model SchemaGroups { /** * The list of schema versions with server paging support. */ -@Azure.Core.pagedResult model SchemaVersions { /** The collection of schema version pageable items. */ #suppress "@azure-tools/typespec-azure-core/casing-style" "Already public casing from service is not camelCase." - @Azure.Core.items + @pageItems Value: int32[]; /** The link to the next page of items */ diff --git a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedCluster.tsp b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedCluster.tsp index ce7d86f42ab4..c45a41e73a2a 100644 --- a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedCluster.tsp +++ b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedCluster.tsp @@ -103,6 +103,7 @@ interface ManagedClusters { * Gets the list of recent fault simulations for the cluster. */ @tag("FaultSimulation") + @list listFaultSimulation is ArmResourceActionSync< ManagedCluster, void, diff --git a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedVMSize.tsp b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedVMSize.tsp index 69181928de9f..7a66fb1e34d1 100644 --- a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedVMSize.tsp +++ b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/ManagedVMSize.tsp @@ -81,6 +81,7 @@ interface ManagedUnsupportedVMSizes { @operationId("managedUnsupportedVMSizes_List") @tag("ManagedVMSizes") @get + @list list( ...ApiVersionParameter, ...SubscriptionIdParameter, diff --git a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/NodeType.tsp b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/NodeType.tsp index 43482c0eb396..bc3f61b27d4a 100644 --- a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/NodeType.tsp +++ b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/NodeType.tsp @@ -174,6 +174,7 @@ interface NodeTypes { * Gets the list of recent fault simulations for the node type. */ @tag("FaultSimulation") + @list listFaultSimulation is ArmResourceActionSync< NodeType, void, @@ -190,6 +191,7 @@ interface NodeTypeSkus { @get @action("skus") @operationId("NodeTypeSkus_List") + @list list is ArmResourceActionSync< NodeType, void, diff --git a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/main.tsp b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/main.tsp index 60bc35ec7df6..1ae6c35a1f1c 100644 --- a/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/main.tsp +++ b/specification/servicefabricmanagedclusters/ServiceFabricManagedClusters.Management/main.tsp @@ -45,6 +45,7 @@ interface Operations { @route("/providers/Microsoft.ServiceFabric/operations") @get @armResourceList(OperationListResult) + @list list( ...ApiVersionParameter, ): ArmResponse | ErrorResponse; diff --git a/specification/sphere/Sphere.Management/catalog.tsp b/specification/sphere/Sphere.Management/catalog.tsp index 4b0da842fcff..6874212d063d 100644 --- a/specification/sphere/Sphere.Management/catalog.tsp +++ b/specification/sphere/Sphere.Management/catalog.tsp @@ -70,6 +70,7 @@ interface Catalogs { /** * Lists deployments for catalog. */ + @list listDeployments is ArmResourceActionSync< Catalog, void, @@ -86,6 +87,7 @@ interface Catalogs { /** * List the device groups for the catalog. */ + @list listDeviceGroups is ArmResourceActionSync< Catalog, ListDeviceGroupsRequest, @@ -102,6 +104,7 @@ interface Catalogs { /** * Lists device insights for catalog. */ + @list listDeviceInsights is ArmResourceActionSync< Catalog, void, @@ -118,6 +121,7 @@ interface Catalogs { /** * Lists devices for catalog. */ + @list listDevices is ArmResourceActionSync< Catalog, void, diff --git a/specification/sphere/Sphere.Management/product.tsp b/specification/sphere/Sphere.Management/product.tsp index 2e23dc2f5428..9292ea69616e 100644 --- a/specification/sphere/Sphere.Management/product.tsp +++ b/specification/sphere/Sphere.Management/product.tsp @@ -70,6 +70,7 @@ interface Products { /** * Generates default device groups for the product. '.default' and '.unassigned' are system defined values and cannot be used for product name. */ + @list generateDefaultDeviceGroups is ArmResourceActionSync< Product, void, diff --git a/specification/sqlvirtualmachine/SqlVirtualMachine.Management/SqlVirtualMachineGroup.tsp b/specification/sqlvirtualmachine/SqlVirtualMachine.Management/SqlVirtualMachineGroup.tsp index dcba7ba834ae..845d7b39d30b 100644 --- a/specification/sqlvirtualmachine/SqlVirtualMachine.Management/SqlVirtualMachineGroup.tsp +++ b/specification/sqlvirtualmachine/SqlVirtualMachine.Management/SqlVirtualMachineGroup.tsp @@ -70,6 +70,7 @@ interface SqlVirtualMachineGroups { */ @get @action("sqlVirtualMachines") + @list listBySqlVmGroup is ArmResourceActionSync< SqlVirtualMachineGroup, void, diff --git a/specification/sqlvirtualmachine/SqlVirtualMachine.Management/main.tsp b/specification/sqlvirtualmachine/SqlVirtualMachine.Management/main.tsp index 0ae782c46d7e..7edcad1841ac 100644 --- a/specification/sqlvirtualmachine/SqlVirtualMachine.Management/main.tsp +++ b/specification/sqlvirtualmachine/SqlVirtualMachine.Management/main.tsp @@ -58,6 +58,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter, diff --git a/specification/storageactions/StorageAction.Management/StorageTask.tsp b/specification/storageactions/StorageAction.Management/StorageTask.tsp index d18bfb2d4a52..972893d983dd 100644 --- a/specification/storageactions/StorageAction.Management/StorageTask.tsp +++ b/specification/storageactions/StorageAction.Management/StorageTask.tsp @@ -106,6 +106,7 @@ interface StorageTasks { #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get @action("reports") + @list list is ArmResourceActionSync< StorageTask, void, @@ -131,6 +132,7 @@ interface StorageTasks { #suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @get @action("storageTaskAssignments") + @list storageTaskAssignmentList is ArmResourceActionSync< StorageTask, void, diff --git a/specification/translation/Azure.AI.DocumentTranslation/models.tsp b/specification/translation/Azure.AI.DocumentTranslation/models.tsp index d4620b59e3c6..e35e10ca086b 100644 --- a/specification/translation/Azure.AI.DocumentTranslation/models.tsp +++ b/specification/translation/Azure.AI.DocumentTranslation/models.tsp @@ -323,10 +323,9 @@ model InnerTranslationError { } @doc("Translation job Status Response") -@pagedResult model TranslationsStatus { @doc("The summary status of individual operation") - @items + @pageItems value: TranslationStatus[]; @doc("Url for the next page. Null if no more pages available") @@ -440,10 +439,9 @@ model DocumentStatus { } @doc("Documents Status Response") -@pagedResult model DocumentsStatus { @doc("The detail status of individual documents") - @items + @pageItems value: DocumentStatus[]; @doc("Url for the next page. Null if no more pages available") diff --git a/specification/translation/Azure.AI.DocumentTranslation/routes.tsp b/specification/translation/Azure.AI.DocumentTranslation/routes.tsp index e77f52fcb3ad..b2e766e64f50 100644 --- a/specification/translation/Azure.AI.DocumentTranslation/routes.tsp +++ b/specification/translation/Azure.AI.DocumentTranslation/routes.tsp @@ -129,6 +129,7 @@ interface DocumentTranslationOperations { """) @route("/document/batches") @get + @list getTranslationsStatus is Azure.Core.Foundations.Operation< GetTranslationsStatusOptions, TranslationsStatus @@ -254,6 +255,7 @@ interface DocumentTranslationOperations { """) @route("/document/batches/{id}/documents") @get + @list getDocumentsStatus is Azure.Core.Foundations.Operation< GetDocumentsStatusOptions, DocumentsStatus diff --git a/specification/vmware/Microsoft.AVS.Management/skus.tsp b/specification/vmware/Microsoft.AVS.Management/skus.tsp index 8e655a1ec00b..644faa03f557 100644 --- a/specification/vmware/Microsoft.AVS.Management/skus.tsp +++ b/specification/vmware/Microsoft.AVS.Management/skus.tsp @@ -13,6 +13,7 @@ interface Skus { @doc("A list of SKUs.") @route("/subscriptions/{subscriptionId}/providers/Microsoft.AVS/skus") @get + @list list( ...ApiVersionParameter, ...SubscriptionIdParameter, diff --git a/specification/voiceservices/VoiceServices.Provisioning/main.tsp b/specification/voiceservices/VoiceServices.Provisioning/main.tsp index 6e3f172b7ff7..c9723c66e185 100644 --- a/specification/voiceservices/VoiceServices.Provisioning/main.tsp +++ b/specification/voiceservices/VoiceServices.Provisioning/main.tsp @@ -953,6 +953,7 @@ interface TeamsRequestsForInformation { @get @readsResource(NumberResource) @doc("List all the Numbers associated with this Communications Gateway.") +@list op listNumbers is RpcOperation< { ...StandardListQueryParameters; From 99b207d4bf341f6eb00b4f0024681ba3694310c7 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 2 Aug 2025 01:47:13 +0000 Subject: [PATCH 04/12] [typespec-validation.yaml] Fix indentation --- .github/workflows/typespec-validation.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/typespec-validation.yaml b/.github/workflows/typespec-validation.yaml index b7a476c1ff32..bd31290fd1f5 100644 --- a/.github/workflows/typespec-validation.yaml +++ b/.github/workflows/typespec-validation.yaml @@ -10,7 +10,7 @@ jobs: name: TypeSpec Validation runs-on: ubuntu-24.04 - steps: + steps: - uses: actions/checkout@v4 with: # Checkout all history for all branches. Required to merge origin/main. From 5a660cb31868cc42f19e4aafa10560466df0c87a Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 2 Aug 2025 02:04:36 +0000 Subject: [PATCH 05/12] always create merge commit --- .github/workflows/typespec-validation.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/typespec-validation.yaml b/.github/workflows/typespec-validation.yaml index bd31290fd1f5..bde8ee595043 100644 --- a/.github/workflows/typespec-validation.yaml +++ b/.github/workflows/typespec-validation.yaml @@ -17,7 +17,9 @@ jobs: fetch-depth: 0 - name: git merge origin/main - run: git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" merge -Xours origin/main + run: | + git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" merge --no-commit -Xours origin/main + git commit --allow-empty -m "Merge origin/main" - name: Setup Node and install deps uses: ./.github/actions/setup-node-install-deps From 4bcaeaa8ce7487719500f3c38b2e14b9f02d7abd Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 2 Aug 2025 02:06:25 +0000 Subject: [PATCH 06/12] fix commit --- .github/workflows/typespec-validation.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/typespec-validation.yaml b/.github/workflows/typespec-validation.yaml index bde8ee595043..14cfa65f05a3 100644 --- a/.github/workflows/typespec-validation.yaml +++ b/.github/workflows/typespec-validation.yaml @@ -18,8 +18,8 @@ jobs: - name: git merge origin/main run: | - git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" merge --no-commit -Xours origin/main - git commit --allow-empty -m "Merge origin/main" + git merge --no-commit -Xours origin/main + git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" commit --allow-empty -m "Merge origin/main" - name: Setup Node and install deps uses: ./.github/actions/setup-node-install-deps From 44acd50dad4f0ef08c80da5479e4974daa04d656 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 2 Aug 2025 02:08:14 +0000 Subject: [PATCH 07/12] keep IgnoreCoreFiles --- .github/workflows/typespec-validation.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/typespec-validation.yaml b/.github/workflows/typespec-validation.yaml index 14cfa65f05a3..e48373d0c690 100644 --- a/.github/workflows/typespec-validation.yaml +++ b/.github/workflows/typespec-validation.yaml @@ -32,5 +32,5 @@ jobs: # Only "main" and "RPSaaSMaster" should validate all specs if core files change $ignoreCoreFiles = -not (@('main', 'RPSaaSMaster') -contains $Env:GITHUB_BASE_REF) - ./eng/scripts/TypeSpec-Validation.ps1 -GitClean -Verbose -BaseCommitish:HEAD~1 -HeadCommitish:HEAD~2 + ./eng/scripts/TypeSpec-Validation.ps1 -GitClean -Verbose -IgnoreCoreFiles:$ignoreCoreFiles -BaseCommitish:HEAD~1 -HeadCommitish:HEAD~2 shell: pwsh From 74be537a970955e40d149e008a5178fced137980 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 2 Aug 2025 02:08:37 +0000 Subject: [PATCH 08/12] tsv-all consistent with tsv --- .github/workflows/typespec-validation-all.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/typespec-validation-all.yaml b/.github/workflows/typespec-validation-all.yaml index 146cd90f5344..283f6786dae6 100644 --- a/.github/workflows/typespec-validation-all.yaml +++ b/.github/workflows/typespec-validation-all.yaml @@ -73,7 +73,9 @@ jobs: fetch-depth: 0 - name: git merge origin/main - run: git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" merge -Xours origin/main + run: | + git merge --no-commit -Xours origin/main + git -c user.name="azure-sdk" -c user.email="azuresdk@microsoft.com" commit --allow-empty -m "Merge origin/main" - name: Setup Node and install deps uses: ./.github/actions/setup-node-install-deps From 65920ee4fb28886e7498d460956ba29f3c82f5fa Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 2 Aug 2025 02:09:23 +0000 Subject: [PATCH 09/12] spacing --- .github/workflows/typespec-validation.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/typespec-validation.yaml b/.github/workflows/typespec-validation.yaml index e48373d0c690..63318fae9373 100644 --- a/.github/workflows/typespec-validation.yaml +++ b/.github/workflows/typespec-validation.yaml @@ -23,6 +23,7 @@ jobs: - name: Setup Node and install deps uses: ./.github/actions/setup-node-install-deps + - name: Validate Impacted Specs run: | # Keep processing when errors are written. Nonzero exit will mark the From 26a855aad92c3acaacd1136f165b13c39e034b3a Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 2 Aug 2025 02:10:53 +0000 Subject: [PATCH 10/12] sort package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9b34125cf845..66396bcf74f7 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "@azure-tools/typespec-client-generator-cli": "0.26.1", "@azure-tools/typespec-client-generator-core": "next", "@azure-tools/typespec-liftr-base": "0.8.0", - "@azure/avocado": "^0.9.1", "@autorest/openapi-to-typespec": "0.11.5", + "@azure/avocado": "^0.9.1", "@typespec/compiler": "next", "@typespec/http": "next", "@typespec/sse": "next", From 57d620fec8d401a17b365cf58d5d35401915b63c Mon Sep 17 00:00:00 2001 From: Mark Cowlishaw Date: Fri, 1 Aug 2025 17:37:55 -0700 Subject: [PATCH 11/12] Remove unnecessary use of resource type --- .../PrivateEndpointConnection.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp index 8fd4ae03ef8c..156e860b5b35 100644 --- a/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp +++ b/specification/deviceprovisioningservices/DeviceProvisioningServices.Management/PrivateEndpointConnection.tsp @@ -111,7 +111,7 @@ interface PrivateEndpointConnections { listPrivateEndpointConnections is ArmProviderActionSync< void, ArmResponse, - PrivateEndpointConnection, + {}, { /** Name of the provisioning service to retrieve. */ @path @segment("provisioningServices") resourceName: string; From a7fcf40157b0f3c24264393ebdf4ab80607827d3 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Sat, 2 Aug 2025 14:30:01 -0400 Subject: [PATCH 12/12] Fix new spec --- specification/fileshares/FileShares.Management/fileshares.tsp | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/fileshares/FileShares.Management/fileshares.tsp b/specification/fileshares/FileShares.Management/fileshares.tsp index cc21690e4436..5f0d5c763234 100644 --- a/specification/fileshares/FileShares.Management/fileshares.tsp +++ b/specification/fileshares/FileShares.Management/fileshares.tsp @@ -343,6 +343,7 @@ interface Operations { @doc("List the operations for the provider") @segment("operations") @get + @list list( ...ApiVersionParameter,